Login
    
Login

02 December 2009 ~ 173 Comments

ตอนที่7: การติดตั้ง Load Balance Failover (VDO Tutorial)

จัดให้..สำหรับสาวกเกมส์ออนไลน์ หรือท่านที่ต้องการเล่นเน็ตแบบไวสายฟ้า ปรารถนาจะไม่หลุดแม้เสี้ยววินาที ชั่วโมงนี้ต้อง Multi-WAN หรือ LoadBalance FailOver เท่านั่น รับรองแรงสะใจไม่ฮุนเซ็นแน่นอน ละอ่อนทอล์ค รับประกันคุณภาพอีกแร้วครับทั่น…

คุณสมบัติ Load Balance Failover
1. Loadbalance : เป็นการกระจาย Bandwidth ด้วยคุณสมบัติ Round Robin Algorithm จึงทำให้เราสามารถได้รับความเร็วสูงสุดทั้ง 2 WAN รวมกันนั่นเอง
2. FailOver : คุณสมบัติสลับสายเมื่อลิงค์ใดๆ หลุด จะถูกสลับไปยังอีกลิงค์อื่นทันที รับรองไม่พลาดการเชื่อมต่อแน่นอนครับ

Service & Package ที่ไม่สนับสนุน
1. Traffic Shaper
2. Squid Proxy
3. บาง Protocol เช่น PPTP, GRE ใช้ได้กับ WAN1 เท่านั้น

Network Diagram

pfSense LoadBalance FailOver

โหลดเอกสารประกอบการบรรยาย Multi-WAN

Did you like this? Share it:
 

173 Responses to “ตอนที่7: การติดตั้ง Load Balance Failover (VDO Tutorial)”

  1. kajoo 15 March 2010 at 10:39 am Permalink

    คุณ admin

    pfsense สามารถ lock mac address ในการออก internet ได้ไหมครับ

    เพราะตอนนี้ออกได้ด้วยการกำหนด ip ถ้าเครื่องอื่นเอา ip ที่ใช้งาน internet ได้
    ไปใช้งาน ก้อทำให้เขาสามารถใช้งานได้ครับ

    ขอบคุณล่วงหน้าครับ

  2. firmware99 26 March 2010 at 3:50 pm Permalink

    pfSense LoadBalance FailOver กับ Clark Connect LoadBalance

    ADSL 4/1 M 2 เส้น

    ถามว่า อันไหนน่าใช้กว่ากันครับ

    จากประสพการณ์ใช้ CC มา 8 เดือน LoadBalance 2Wan มีปัญหาคือ

    ทดลองปิดเร้าเตอร์ของ ppp0 แต่ ppp1 ยังเปิดปกติ ปรากฏว่า เน็ทใช้ไม่ได้ทันทีครับ ต้องรออีกหลายนาทีกว่าจะใช้ ppp1 เส้นเดียวได้

    ไม่ทราบว่า pfSense LoadBalance FailOver นี้ เป็นเหมือนกันไหมครับ …

  3. karn 26 March 2010 at 6:54 pm Permalink

    admin หายไปนานเลย……เกือบเดือนแล้วไม่สบายหรือเปล่าครับ?

    เรียนคุณ firmware99 จากที่ผมได้ใช้งาน Loadbalance ของ pfsense มาก็ราวๆเดือนนึง ผมว่ามันก็โอเคนะ ลองเปิด-ปิดเราว์เตอน์สลับกันทีละตัว ูเน็ตก็ออกได้ปกติจะมีสะดุดบ้างบางครั้ง (สงสัยตอนรอสลับสายขาออกจากเส้นหนึ่งไปอีกเส้นมั้ง) แต่ก็รอไม่นานไม่ถึงนาทีก็ใช้ได้ปกติ ส่วน CC ผมไม่เคยใช้และผมก็ไม่มีพื้นฐานด้านลีนุกซ์ด้วยครับ ที่ได้ใช้ตรงนี้ก็เพราะทำตามวีดีโอที่ admin สอนครับ

    ตอนนี้ผมมีเรื่องอยากรบกวนถาม admin อีกนิดครับ
    คือว่าผมใช้เน็ต 3 เส้น คือ 4/512 , 4/512 , 12/512 M ใช้เป็น WAN WAN1 WAN2 ตามลำดับเลยครับ เรื่องการออกเน็ตออกได้ปกติดี แชร์กันออกได้ มันก็เป็นที่น่าพอใจระดับหนึ่ง แต่ติดตรงที่สปีดครับที่มันออกมาไม่แตกต่างกันเลยระหว่างมี 2 เส้น กับ 3 เส้น คือผมเอา WAN+WAN1 = 7.8/0.87 (ค่าที่ดีที่สุดครับ) WAN+WAN1+WAN2 = 8.8/0.89 ทั้งที่ผมรอเทสตอนหลังเลิกงานดูแล้วไม่น่ามีใครใช้เน็ตเลย ทำไมความเร็วมันถึงไม่เท่ากับความเร็วทั้งหมดรวมกันครับ หรือสัก 70 % ของผลรวมทั้หมดก็ยังดี
    ผมตั้ง pool ทั้งหมด 6 pool ครับ สลับให้ครบกันทั้งสามเส้น ส่วน Rule ผมตั้งให้ WAN2 อยู่บนสุด monitor IP ของราวเตอร์ ที่เหลือตามวีดีโอทุกอย่าง ท่าน admin หรือท่านอื่นๆ พอจะมีใครแนะนำได้ไหมครับว่าผมต้องแก้ไขตรงไหน หรือว่ามันมีข้อจำกัดว่าจะออกได้ไม่เกิน 10 M เพราะผมลองเอา WAN+WAN2 มันก็ออกได้ไม่เกิน 9/0.9M ครับ……………

  4. nrhkt 26 March 2010 at 8:57 pm Permalink

    ขอบคุณ สำหร้บ ข้อมูล ดีๆ ครับ

  5. laontalk 27 March 2010 at 10:06 pm Permalink

    ขณะที่ทำ VDO สอน ผมได้เปิด Bit torrent ไว้ตลอดเวลา เมื่อมีการปิด router โปรแกรม Torrent ไม่ได้แสดงว่าหลุดแต่ประการใด curve อาจจะตกนิดหน่อย แต่ประมาณ 5 วินาที ก็ขึ้นมาตามเดิม

    การเข้าเว็บไซต์ แค่กด reload หรือ ปิด-เปิด browser ก็สามารถใช้งานเว็บไซต์ได้ปกติ

    ถามว่าระหว่าง CC กับ pfSense อย่างไหนน่าใช้กว่ากัน โดยส่วนตัวแล้วไม่ได้ใช้ CC เป็นเรื่องเป็นราว จึงตอบไม่ได้ครับ

    อยากให้ทดลองดู พิสูจน์ด้วยตัวเอง ดีไม่หรืออย่างไรแล้ว ช่วยแบ่งปันมาทางนี้ด้วนนะครับ

  6. kajoo 1 April 2010 at 11:22 am Permalink

    แล้ว pfsense lock mac address ได้ครับ

  7. laontalk 3 April 2010 at 2:16 am Permalink

    – karn –

    ขอบคุณที่เป็นห่วง admin ไม่ได้หายไปไหนครับ ยังอยู่แถวๆ นี้แหละ แต่ที่ไม่ได้ update เลยเพราะว่าช่วงนี้งานเข้า งานเยอะดีจริงๆ ถ้าแยกร่างได้ก็คงดี แสดงว่าเศรษฐกิจปีนี้แนวโน้มดีขึ้นมากครับ ลูกค้าหลายรายมีความสามารถในการซื้อมากยิ่งขึ้น…

    ขออภัยที่ไม่ได้มาตอบคำถามหลายๆ ท่าน

    เพื่อนๆ ท่านไหนที่มีประสบการณ์แล้ว รบกวนแบ่งปั่นท่านอื่นด้วยการช่วยแสดงความคิดเห็นด้วยนะครับ

  8. tenjung 6 May 2010 at 12:08 pm Permalink

    ผมทำตามขั้นตอนในวิดีโอแล้ว สามารถใช้งานได้ครับ แต่มีปัญหาเดียวคือ UPLOAD มันจำกัดแค่ 512kbps เท่านั้น ของผมใช้ Leadline 2 Mbps เป็น ip static อีก 1 เส้น เป็น ADSL 2 Mbps เป็น ip dynamic ครับ เมื่อทำ load balance และทดสอบ speed พบว่าอัตรา dowload เพิ่มขึ้น แต่ upload จำกัดแค่ 512k ลองทดสอบเอาสาย ADSL ออก และวิ่งเส้น leadline เส้นเดียว พบว่าอัตรา upload เป็นปกติ คือ 1-2Mbps ใครพอจะทราบว่าสาเหตุว่าเกิดจากอะไร และมีวิธีการแก้ไขอย่างไรครับ
    ขอบคุณมากครับ

  9. karn1976 16 May 2010 at 7:29 pm Permalink

    admin ไปไหนแล้วครับ มีเรื่องอยากสอบถามครับ….
    วันนี้มีโอกาศได้เอาเน็ต 3ฺฺBB มาชนกัน 2 สายครับ เป็น 10/1+10/512 อันแรกติดตั้งใหม่ อันหลังขอเขาลองใช้ครับ(อัปของเดิม..ทิ้งทวนก่อนยกเลิกเบอร์ครับ) ประมาณว่าทำทุกอย่างเหมือนในวีดีโอ ผลก็เหมือนเดิมครับเป็นที่น่าพอใจ เทสสปีดได้ 19.8/1.5 M. ผมว่าเวิร์กมากเลย แต่มันมีเรื่องให้คิดปวดหัวตามมาครับ…..
    ตอนที่เทสตอนแรกเทสผ่านสายครับ แต่พอเทสผ่าน WLAN ได้แค่ 5/0.6 M. เต็มที่เลยไม่เกินนี้ครับ พอเอา WLAN มาต่อตรงกับเราว์เตอร์ผลก็ไม่เป็นที่น่าพอใจเลย เทสแล้วได้แค่ 7/0.85 M. สรุปแล้วน่าจะเป็นที่ WLAN
    อยากสอบถาม admin ว่าผมต้องเซ็ตค่าอุปกรณ์อย่างไรให้ได้ความเร็วสูงกว่านี้ ผมใช้ WRT54GL ครับ…ผมลองใช้ Engenius 1650 ได้ความเร็วดีขึ้นมาหน่อย เร็วกว่าเดิม 1 M.
    ……ผมต้องเซ็ตอะไร ยังไง ตรงไหน หรือ ต้องเปลี่ยนอุปกรณ์เป็นรุ่นไหน รบกวนขอคำชี้แนะด้วยครับ……

    • laontalk 25 May 2010 at 7:14 pm Permalink

      ไม่ทราบว่า WLAN กี่เครื่อง และเชื่อมต่อแบบไหน ลองทดสอบ WLAN เครื่องเดียวได้เท่าไหรครับ

      เท่าที่ผมใช้มาทั้ง LAN และ WLAN ออกได้พอๆ กัน เว้นแต่กรณีที่ WLAN มีจำนวนมาก (20-30) อาจเกิดอาการสัญญาณรบกวน อันจะทำให้ช้าลงได้

      ต้องวิเคราะห์และแก้เป็นเรื่องๆ ไปครับ

  10. karn 29 May 2010 at 10:57 pm Permalink

    WLAN ต่อเครื่องเดียวครับ ออกเต็มที่ไม่เกิน 7 M ครับ แต่ต่อสายออกเต็มๆเลยครับ 19 M กว่าๆ ลองเอา 10 M เส้นเีดียวมาต่อโดยไม่ผ่าน PFsense ก็ได้ความเร็วเท่าเ้ดิมครับ คิดว่าน่าจะเป็นที่ความสามารถในการส่งสัญญาณของ WLAN ครับ…
    เมื่อวานมีโอกาสได้ลอง nanostation M5 ย่าน 5 GHz ครับ ลองเซ็ต P2P ดูปรากฏว่าออกเต็ม ๆ ครับ 19 Mกว่า ยังกะเล่นผ่าน LAN น้องชายเอาไปติดตั้งที่นครพนม ยิงสัญญาณข้ามแม่น้ำโขงไปฝั่งทางโน้น ระยะทางราว 2 กิโลเมตร สัญญาณแรงดีไม่มีตกครับ ความเร็วเน็ตแทบจะไม่ตกเลย เน็ต 12 M ไปเทสที่ฝั่งโน้นได้ 11 กว่า ๆ เสียดายที่เป็นย่าน 5 GHz ถ้าเป็นย่าน 2.4 GKz แล้วได้แรงแบบนี้ก็คงดี

    ผมมีปัญหาอยากปรึกษาอีกเรื่องครับ ตอนนี้ผมใช้เครื่อง firewall 2 เครื่องครับ เครื่องแรกทำโหลดบาลานซ์ ความเร็วกระฉูดสะใจดีครับ เครื่องที่ 2 เอามาลง squid+light+traffic โดยใช้ OPT1 เป็นตัวปล่อยสัญญาณให้ลูกค้า กำหนดให้มีการออเทนด้วย
    …ปัญหาที่พบปรากฏว่าเข้าเว็ปพวกที่ดูทีวีออนไลน์อืดมากๆๆๆๆ โดยเฉพาะช่อง 3 บางทีมีกระตุก ค้างเป็นช่วงๆ แต่ถ้าลองใช้ LAN ปัญหาดังกล่าวหมดไป (ผมลองทั้งต่อสายตรงและต่อผ่าน WLAN โดยสลับสายทั้งจาก Interface LAN และ OPT1) ผมเซ็ตค่าตามวีดีโอทุกขั้นตอน….ผมรบกวนข้อคำชี้แนะเพื่อนำไปปรับแก้ระบบให้สามารถใช้งานได้เป็นปรกติด้วยครับ

    • laontalk 1 June 2010 at 2:19 am Permalink

      — karn –

      “ปัญหาที่พบปรากฏว่าเข้าเว็ปพวกที่ดูทีวีออนไลน์อืดมากๆๆๆๆ โดยเฉพาะช่อง 3 บางทีมีกระตุก ค้างเป็นช่วงๆ แต่ถ้าลองใช้ LAN ปัญหาดังกล่าวหมดไป…”

      ตอบ
      การวิเคราะห์ปัญหาอย่างแรกต้องมุ่งไปที่ WLAN ครับ ส่วนจะต้องทำอย่างไรบ้านนั้นมันขึ้นอยู่กับองค์ประกอบหลายๆ อย่าง เช่น อุปกรณ์, การเชื่อมต่อ, จำนวนของ WLAN, Configuration ลองไล่แก้ทีละอย่างดูครับ

  11. titipan 30 May 2010 at 7:15 pm Permalink

    ก่อนทำผมใช้เส้น wan 1 ออกอินเตอร์เน็ตได้ครับ แต่พอทำตามวีดีโอเสร็จทุกขั้นตอนจนมาถึง ที่หน้า status

    ครับ ปรากฏว่า wan 1 >>> offline แต่ wan 2 online ครับ ไม่ทราบเป็นเรพาะอะไรหรอครับ

    เป็นทั้ง หมดเลยครับ Loadbalance WAN1FailOverWAN2 WAN2FailOverWAN1

  12. titipan 30 May 2010 at 7:28 pm Permalink

    แก้ได้แต่ถ้า tot ล่ม จะใช้เน็ตได้ไมครับ

    ผมใช้ WAN1 3bb = 4/1 WAN2 tot = 6/512

    WAN1 dns 3bb 202.69.137.137 WAN 2 dns tot 203.113.127.199

    ผมลองแก้ dns ของ 3bb ให้มาใช้ ของ tot เป็น 203.113.24.199 สรุป online ทั้งหมดครับ

    ผมถาม 3ิิbb มาเขาบอกว่าใช้ได้ แต่เขาปิดการ ping อ่ะครับ

    รบกวนขอ dns ของ 3bb ที่ใช้ได้มีไมครับหรือจะอ้างจากที่ไหนดีครับ

  13. mote_ao 14 June 2010 at 3:46 pm Permalink

    ขอถามหน่อยครับ ท่านอาจารย์ทั้งหลาย
    ผมกำลังจะทำเน็ต จาก 1 wan เป็น 2 wan ครับ
    แต่ ปัจจุบัน 1 wan ของผมผมได้ทำการ DNSforword port ให้เข้ามาใช้งาน webserver(192.168.1.xxx:80) (192.168.1.xxx:23)ครับ แล้วหลัวจากที่ผมจะเพิ่มเป็น 2 wan ผมจะต้องกำหนดยังไงดีครับ ที่ wan1 or wan2 ครับ

    • laontalk 16 June 2010 at 7:31 pm Permalink

      ทำ port forward ไปที่ WAN1 ครับ ถ้าจะให้ดี กำหนดให้ WAN1 เชื่อมต่อแบบ PPPoE, ส่วน Router กำหนดเป็น Bridge Mode

  14. karn 14 June 2010 at 6:31 pm Permalink

    ตอนนี้ทดสอบระบบใหม่แล้วครับ ปรากฏว่าที่ดูทีวีออนไลน์อืดมันไม่ได้เกี่ยวกับ Pfsense เลย ลองถอดสายต่อตรงจากเราว์เตอร์เลยปรากฏว่าอืดเหมือนเดิม ลองสลับที่ละสายก็ยังอืดเหมือนเดิมครับ สรุปได้เลยว่าเป็นที่เน็ตมากกว่า หลงโทษเ้ซิร์ฟเวอร์อยู่ตั้งนาน

  15. titipan 20 June 2010 at 10:32 am Permalink

    pfsense ทำ Loadbalance 3 wan หรือ 4 wan ได้ไมครับ และทำ FailOver สายใดหลุดสลับสายด้วยครับ

    ถ้าทำได้ ต้องทำอย่างไรครับ

  16. one_kk2006 20 June 2010 at 10:15 pm Permalink

    สอบถามผู้รที่รู้หน่อยครับว่า จะทำ load balance 4wan ต้องกำหนดยังบ้างครับ ถ้า load balance 2wan ผมทำได้แล้ว tt&t 4M+tot 4M เทสสปีดแล้วได้ประมาณ 7-7.5 ก็โอเคครับ เลยอยากลองทำ 4wan แต่ไม่รู้ว่าจะเซ็ตยังงัย…รบกวนหน่อยนะครับ one_kk2006@hotmail.com

    • laontalk 26 June 2010 at 4:10 am Permalink

      ต้องใช้ Switching HUB ที่รองรับ VLAN, โดยที่ pfSense สามารถกำหนดให้เชื่อมต่อกับ VLAN ได้, แล้วใช้ Router ต่อเข้ากับ Switching – VLAN port ที่กำหนดไว้

      จากนั้นทำการสร้าง Load Balance Pool เพิ่มขึ้นตามจำนวน WAN ครับ, อันนี้ผมก็ยังไม่เคยลองครับ แต่ในทางทฤษฎีว่าไว้อย่างนั้น….

  17. titipan 7 July 2010 at 2:36 am Permalink

    VLAN ตัวไหนบ้างครับที่ร้องรับ pfsense ครับ

    ขออ้างอิงจากเว็บนี้ครับ

    http://www.hadyaiinternet.com/index.php?topic=290.0

    ตัวนี้รองรับไมครับ คือ ผมไม่เคยลองกับ vlan เลยครับ

  18. titipan 8 July 2010 at 1:11 pm Permalink

    VLAN ต้องใช้ยี่ห้อของอะไรครับ ถึงจะรองรับกับ pfsense

    ผมมือใหม่ครับ ยังไม่เคยใช้ vlan เลยครับ

    ไม่รู้ว่าตัว Zyxel ES-2024A จะใช้กับ pfsense ได้ไมครับ

    อ้างอิง http://www.hadyaiinternet.com/index.php?topic=290.0

    รบกวนด้วยนะครับ

  19. anthonylee 18 July 2010 at 9:43 am Permalink

    VDO การติดตั้ง Load Balance ดูได้ ครึ่งเดียว รบกวนทีมงานแก้ไขให้หน่อยครับ อยากศึกษาบ้าง

    • laontalk 26 July 2010 at 11:24 pm Permalink

      ผมทดลองดูก็ปกติดีนี่ครับ ไม่ท่านอื่นๆ เป็นหรือไม่ ยังไงลองใช้โปรแกรม Advance system care free มาแสกนดูก่อน และค่อยเปิดดูใหม่ แนะนำให้ใช้ Google Chrome ครับ

  20. arks 22 July 2010 at 11:07 am Permalink

    status load balancer ของผมมัน offline ทั้ง 2 เส้น

    แต่ผมก็เข้า internet และเล่นเกมส์ได้

    ผมทำอะไรผิดไปหรือเปล่าครับimg.php?22-07-2010:1279771649_0.25284100.jpg

  21. arks 22 July 2010 at 11:09 am Permalink

    http://www.temppic.com/img.php?22-07-2010:1279771649_0.25284100.jpg

    • laontalk 26 July 2010 at 11:20 pm Permalink

      ไ่ม่ทราบว่าทำตาม VDO ทุกขั้นตอนหรือป่าวครับ

      • arks 2 August 2010 at 4:08 pm Permalink

        ใน vdo ใช้ monitor ip เป็น
        dns server 1 / wan 1 / add pool
        dns server 2 / wan 2 / add pool

        ผมลองเปลี่ยนจาก dns server ไปเป็น
        wan’s gateway / wan 1 / add pool
        wan2.s gateway / wan 2 / add pool

        ก็กลายเป็นว่า online แล้วก็ใช้งานได้ตามปรกติ ผมก็ไม่รู้เหมือนกันว่า ทำต่างจาก vdo แล้วทำไมมันถึง online ทำเหมือน vdo แล้ว offline

        • arks 2 August 2010 at 4:12 pm Permalink

          ตอนนี้ก็มีปัญหาหนักใจเกี่ยวกับการ cre dota ในร้าน ทำ load balance ได้แล้ว
          แต่ยังทำให้ create ไม่ได้
          ลูกค้าหายหมด T_T เลยใช้สายเดียวเหมือนเดิม

  22. babyjum 22 July 2010 at 11:36 am Permalink

    พวก instant messenger เปิดกล้องด้วย ไม่ค่อยเวิร์ก
    ไม่ทราบว่าแก้ยังไงคับ

  23. babyjum 22 July 2010 at 1:55 pm Permalink

    พวก instant messenger เปิดกล้องด้วย ไม่ค่อยเวิร์ก
    ไม่ทราบว่าแก้ยังไงคับ อาการ คือ บางครั้งก็ได้ บางครั้งก็ไม่ได้
    เวลาเราส่งข้อความไปหาเพื่อนคุยกันก็ได้ปกติ แต่พอส่งวีดีโอ เค้าไม่ได้รับการร้องขอ
    หรือว่าเวลาเค้าเปิด วีดีโอ ก็ไม่มาโผล่ที่ฝั่งเรา ในขณะเดียวกันก็ยังคุยผ่านการพิมพ์ได้ปกติ
    คาดว่าเป็นที่โหลดบาร้านส์ แต่หากถอด Wan2 ออก ใฃ้งานได้เลยครับ
    ประมาณว่าบาร้านส์โหมดคงมีปัญหาครับ

    • laontalk 26 July 2010 at 11:21 pm Permalink

      แก้ไขด้วยการสร้าง Rule เพื่อบังคับให้ Port ของ IM วิ่งผ่าน WAN1 อย่างเดียวครับ

      • Rookie 21 August 2010 at 4:57 pm Permalink

        ทำยังไงคับผมมือใหม่ สร้าง rule ใน firewall ไม่เป้นคับทำตามVDOได้แล้วแต่ติดปัญหา
        เล่นMSNผ่านกล้องWEBCAM ไม่ได้ครับ

  24. tcoa_ag 30 July 2010 at 12:01 pm Permalink

    ใน VDO เป็นเวอชั่นใหนครับและดาวโหลดที่ใหนครับ หรือใช่ได้ทุกเวอชั่นครับ

    เด็กใหม่หัดทำ

  25. mumooo 31 July 2010 at 4:57 pm Permalink

    Service & Package ที่ไม่สนับสนุน
    1. Traffic Shaper <<< คือ ฟังชั่นนี้จะไม่ทำงาน หรือว่า LB หรือว่า FailOver จะไม่ทำงานคับ
    2. Squid Proxy <<< คือ ฟังชั่นนี้จะไม่ทำงาน หรือว่า LB หรือว่า FailOver จะไม่ทำงานคับ

    • laontalk 31 July 2010 at 5:26 pm Permalink

      Traffic Shaper & Squid Proxy สนับสนุน WAN1 เท่านั้น เมื่อติดตั้ง LB จะไม่ทำงาน ลองดูก็ได้ครับ (เคยลองนานแล้วจำไม่ค่อยได้ว่าเกิดอะไรขึ้นบ้าง)

  26. mumooo 1 August 2010 at 10:38 am Permalink

    คือผมยังตัดสินใจไม่ได้ ว่ารักพี่เสียดายน้องครับ
    มีเน็ท ตั้ง 3เส้น 10/512*3
    1.อยากจะควบคุม ฺB/W
    2.รายงาน report เกี่ยวกับการใช้งานเว็บ คือ มีเครื่องติดไวรัสไม่รู้เครื่องไหนครับ ดูจาก report ที่ออก เน็ทถี่ๆเยอะๆ น่าจะรู้ใช่ไหมครับ
    3.authen เพื่อให้ทราบว่า IP นี้เป็นชื่อ log in ห้องไหน

    ช่วยแนะนำทีครับว่าจะ ใช้ packet ไหนบ้างครับ

    • laontalk 31 August 2010 at 9:19 pm Permalink

      ถ้าต้องการนำไปใช้กับระบบ Internet Apartment อาจจะไม่ได้ทั้งหมดที่ต้องการครับ เพราะ pfSense ออกแบบมาเพื่อเป็น firewall

      1. ควบคุม B/W ต้องใช้ Traffic Shaper
      2. ใฃ้ Squid Proxy เพื่อเก็บ Content และใช้ syslog watcher เพื่อเก็บ syslog
      3. ใช้ Captive Portal สำหรับ User Authentication

  27. arks 2 August 2010 at 6:07 am Permalink

    ทำได้มาหลายอาทิตย์แล้ว แต่ก็ยังครี dota ไม่ได้

    ไม่ทราบว่าต้องทำยังไงบ้างครับ

    • laontalk 17 August 2010 at 12:58 pm Permalink

      ได้ลองทำ port forward แล้วหรือยังครับ

      Frewall > NAT > Port Forward

      • seednet123 8 September 2010 at 12:58 am Permalink

        forward ใน Router ไว้แล้วต้องทำใน pfsense ด้วยป่าวคะ

        • laontalk 15 September 2010 at 12:15 am Permalink

          กรณีต่อ Router Mode จะต้องทำการ port forward จาก Router ไปยัง pfsene แล้ว port forward จาก pfsenes ไปยังเครื่อง PC อีกที

          กรณีต่อ Bridge Mode จะต้องทำการ port forward จาก pfsense ไปยังเครื่อง PC ครับ

          • arks 5 November 2010 at 10:28 am Permalink

            กรณีต่อ Router Mode จะต้องทำการ port forward จาก Router ไปยัง pfsene แล้ว port forward จาก pfsenes ไปยังเครื่อง PC อีกที

            ทำยังไงเหรอครับ – -?

            ตอนนี้ที่ทำได้คือ ครีแล้วคนในร้าน join ได้ แต่ที่อื่น join มาเล่นด้วยไม่ได้

            1288927670_0.63787000.jpg

    • pole 3 January 2011 at 5:16 pm Permalink

      คือ เน็ตผม True 4M+TOT 6M ทำ LBL Pfsense 1.2.3 RC1
      แต่มาเช็คความเร็ว ได้แค่ 1/512 ช่วยทีครับ ผมผิดตรงใหน

  28. yud 16 August 2010 at 11:09 am Permalink

    คือผมทำงานอยู่ที่โรงเรียนเอกชนแห่งหนึ่ง ตอนนี้ผมมีเน็ต 3 เส้นเป็นของ TOT ทั้งหมด แล้วผมอยากทำ LoadBalance ผมจะทำยังไงครับ ผมดูแต่ VDO LoadBalance 2 wan ผมทำ3wan ไม่เป็นครับ และก็อยากทำให้มัน Balance กัน คือ ใช้ทั้งหมด 30 เครื่องพร้อมกัน ,เล่นเครื่อง 1-10 ออก wan1, เล่นเครื่อง11-20 ออก wan2, เล่นเครื่อง 21-30 ออกwan3, อย่างนี้เป็นต้นครับ พอจะบอกได้เปล่าครับ
    ขอบคุณครับ
    Email yud9639@hotmail.com

    • laontalk 31 August 2010 at 9:14 pm Permalink

      เอาอย่างง่ายนะครับ ไม่ต้องทำ loadbalance ก็ได้ ขั้นตอนดังนี้

      1. 4x LAN interface
      - 1 สำหรับ LAN
      - 1 สำหรับ WAN1
      - 1 สำหรับ WAN2
      - 1 สำหรับ WAN3

      2. กำหนดให้ Router ทั้ง 3 ตัวเป็น Router Mode ทั้งหมด
      หรือ WAN1 Bridge, WAN2,3 เป็น Router Mode

      3. สร้าง LAN Rule กำหนดให้
      IP Address 1-10 ออก Gateway WAN1
      IP Address 11-20 ออก Gateway WAN2
      IP Address 21-30 ออก Gateway WAN3

      เท่านี้ก็สามารถใช้งานได้แล้วครับ…

      • tanoy999 3 April 2011 at 7:13 am Permalink

        3. สร้าง LAN Rule กำหนดให้
        IP Address 1-10 ออก Gateway WAN1
        IP Address 11-20 ออก Gateway WAN2
        IP Address 21-30 ออก Gateway WAN3

        ตัวนี้สร้างอย่างไหรครับ ……..แบบคร่าวๆ ขอบพระคุณครับ

  29. saraming 28 September 2010 at 9:26 pm Permalink

    ผมมีปัญหาหลังจากใช้งานมาได้1อาทิตย์น่ำครับ จู่ๆเน็ตสาย2 ก็กลายเป็นออฟไลน์ทำยังไงๆก็ไม่ขึ้นOnlineสักทีเลยลองเปลี่ยน Routerใหม่ ปรากฏว่า ขึ้นคำว่า Warning อย่างในรูป แล้วความเร็วเน็ตก็มาเต็มเหมือนกับตอนOnlineทั้งสองสาย ช่วยบอกวิธีแก้ไขทีครับผม

    92714741.png

    • laontalk 30 September 2010 at 3:15 pm Permalink

      เมื่อเช็คที่ Status > OPT Interface สถานะเป็นยังไงบ้างครับ..

      หรือไม่งั้นต้องลองเปลี่ยน LAN Card ตัวที่เป็น OPT ครับ

  30. beercopy 3 October 2010 at 3:19 pm Permalink

    กำหนด Rule ออก msn อย่างไรครับ

    • laontalk 5 October 2010 at 5:40 pm Permalink

      ปกติถ้ากำหนดตาม VDO ก็เล่นได้นี่ครับ ยกเว้น VPN ต้อง WAN1 อย่างเดียว หรือ Server ที่ไม่รองรับ Multi domain จึงจะบังคับให้ออก WAN ใดๆ

      • beercopy 6 October 2010 at 5:09 pm Permalink

        ผมทำตาม vdo แล้ว เล่น msn ได้ปกติแต่ว่าติดต่อผ่าน vdo ไม่ได้ครับ
        ผมลองกำหนด Rules คือ
        Action = pass
        Interface = lan
        Protocol = tcp/udp
        Source = any
        Destination = any
        Destination port range = msn (1863)
        Gateway = default
        อย่างนี้ถูกต้องไหมครับ ช่วยแนะนำด้วยครับ ขอบคุณครับ

  31. aotyunsir 7 October 2010 at 6:25 pm Permalink

    ผมทำ loadbalance ตาม VDO แล้วคับ ใช้งานได้ด้วยคับ
    อยากถามแอดมินว่า ถ้าผมจาทำ server loadbalace+Web cach ด้วยได้ไหมคับ ถ้าได้ผมต้องทำ
    ยังไงคับ อยากให้ server เป็น web cach ด้วยคับ ผมใช้ PFsense 1.2.3 คับ

    • laontalk 8 October 2010 at 12:55 am Permalink

      web cach ในที่นี้คือ proxy server หรือป่าวครับ ถ้าใช่ต้องเพิ่ม pfsense firewall หรือ Proxy server ใดๆ เพิ่มเข้ามาต่อจาก loadbalance ครับ

      ตามนั้น…

      lbwithproxy.jpg

  32. saraming 12 October 2010 at 9:05 pm Permalink

    ปัญหาเก่าผมแก้ ไขได้แล้วครับแต่ตอนนี้ประสบปัญหาใหม่คือ ไอพีโบนัสมันไม่ขึ้นครับไม่รู้ว่าจะต้องทำยังไงดี
    ครับผม คือว่ามันมีให้แอด พอร์ท 45800-45809 ครับ ต้องเอาพอร์ทตรงนี้ไปแอด เข้าเส้นไหน ในLan Rule เพื่อที่จะให้มัน วิ่งปกติหรอครับ….

    • laontalk 13 October 2010 at 10:49 am Permalink

      ช่วยขยายความหน่อย 45800-45809 เล่นผ่าน multiWan ไม่ได้หรืออย่างไร มันเป็น port ของเกมส์ หรือโปรแกรมอะไรครับ

  33. aotyunsir 14 October 2010 at 4:06 pm Permalink

    ผมลองทำ load balnce เวิร์คคับ(แต่ยังไม่ได้ลองทำ Proxy server คับ)
    อยากถามว่าถ้าผมต้องการแยกเน็ต แยกเกมส์ออกจากกันได้ไหมคับ ถ้าได้ผมต้องไปกำหนดที่ firewall Rule ใช่ไหมคับ แล้วต้องไป set interface ไหนบ้างคับ Lan หรือ wan คับ
    ต้องสร้าง pool เพิ่มเปล่าคับ ขอวิธีเซ็ตแบบคร่าวๆทีคับ
    ขอบคัณคับ

  34. aotyunsir 15 October 2010 at 8:14 pm Permalink

    สวัดดีคับ admin ผมทำ load balance ได้แล้ว เลยมีเรื่องถาม 2 เรื่องคับ คือ
    1.ลูกค้าเล่นเกมส์ Point Bank ไปได้ซักพักแล้ว เกมส์จะเริ่มกะตุกแล้วก็จะหนัก ขึ้นเรื่อยๆคั
    บ สถานะของ wan,wan2 ขึ้น online เป็นสีส้มคับ ควรจะแกไขยังไงดีคับ
    2.ถ้าผมต้องการแยกเน็ตแยกเกมส์ จะได้ไหมคับ ถ้าได้ ผมควรจะกำหนด rule กับ pool ยังดีคับ
    ขอแบบคร่าวๆ ก็ได้นะคับ
    ขอบคุณคับ

    • aotyunsir 18 October 2010 at 9:23 pm Permalink

      -ตอนนี้ผมรู้ปัญหาของ Game Point Bank ที่กะตุก หรือแลคแล้วคับ คือว่า internet ของผมมันวิ่งแค่
      wan2 เท่านั้นส่วน wan มันไม่มี packag ออกเลยคับ แต่พอลองปิด wan2 ดูมันก็สลับไปวิ่งที่ wan ได้ปรก
      ติคับ ลองปิด wan ดูมันก็กลับมาวิ่งที่ wan2 แต่พอเปิดทั้ง2 wan มันกลับวิ่งที่ wan2 เส้นเดียวคับ ทั้งๆที่สถานะ online สีเขียวทั้งคู่คับ ผม set ผิดตรงไหนคับ ขอผู้รู้ช่วยตอบทีคับ
      -ผมลอง set firewall rule ดูแล้ว เน็ต ofline ทั้งคู่เลยคับ ผมลองทำอยู่หลายแบบเลยคับ
      ออกเน็ดไม่ได้เลยสักแบบคับ ใครที่เช็ตแบบแยกเน็ตแยกเกมส์ได้ ช่วยบอกวิธีเซ็ตให้ทีคับ หรือขอดูรูปตัวอย่างการ
      เซ็ตแบบคร่าวๆทีคับ
      ขอบคุณคับ

      • aotyunsir 19 October 2010 at 11:06 pm Permalink

        -ขอวิธีปิดเครื่อง PFsense ทีคับใครรู้ช่วยผมที
        ขอบคุณคับ

        • temchaivanich 24 October 2010 at 8:19 am Permalink

          ผมกดปุ่ม Power (ที่ตัวเครื่อง) pfsense ก็จะทำการ Shutdown ครับ

  35. ploycity 26 October 2010 at 1:16 pm Permalink

    ทำ Load Balance ไม่สำเร็จคับ

    ขั้นตอน Add Pool มันโผล่แค่ WAN1

    ส่วน WAN หายแว็บไปไม่มีให้เลือกเลย

    (ตามรูป) จะแก้ไขยังไงคับ ???

    untitled1.jpg

  36. laontalk 2 November 2010 at 12:42 pm Permalink

    ปรับปรุงเพิ่มเติม เอกสารประกอบการบรรยาย สามารถโหลดได้จากลิงค์ด้านล่าง VDO ครับ

  37. ArZuGi 19 November 2010 at 10:16 am Permalink

    ทำตาม VDO แล้ว มันไม่ยอมสลับสายครับ

    online ทุกสายนะครับ

    • laontalk 19 November 2010 at 1:45 pm Permalink

      online ทุกสาย ก็ถูกต้องแล้วนี่ครับ มันจะสลับสายก็ต่อเมื่ออีกสายหนึ่ง disconnect ครับ ลองปิด router อีกตัวดูครับ

  38. lighte 20 November 2010 at 1:35 pm Permalink

    ทำไมเวลาดาวน์โหลดไฟล์จากโฮสต์ตัวเอง ใช้ IDM ดาวน์โหลด ดูในกราฟของ pfsense มันแสดงสปีดรวมกัน แต่ที่ตัว IDM มัน มันเต็มที่แค่สายเดียวครับ ปกติหรือเปล่าครับ
    สเปก
    pfsense 1.2.3 relese อินเตอร์เนต 3BB 6 Mbps + TOT 4 Mbps ดูในกราฟตอนดาวน์โหลด มันแสดง ประมาณ 12 Mbps แต่ดูค่าดาวน์โหลดใน IDM มันโหลดได้ประมาณ 6-7 Mbps(ปกติ 3bb ก็โหลดได้เต็มที่ราวๆนี้)

    ขอบคุณมากๆครับ ตอนนี้สบายใจขึ้นเยอะ ไม่มีคนเล่นบิทในที่ทำงานแล้ว 55

    • laontalk 21 November 2010 at 3:44 am Permalink

      Hosting ส่วนใหญ่มักจะมีการจำกัด banwidth หรือไม่รองรับ Multi IP Address เมื่อมีการ Access เข้ามาเพื่อ Download ข้อมูลจาก Hosting ของตัวเอง แต่บาง potocol อาจอนุญาติให้รองรับ Multi IP Address ได้ เช่น HTTP

      นอกจากจะเปลื่อง banwidth แล้วยังทำให้ Server ต้องสูญเสียทรัพยากรอย่างมหาศาล โดยเฉพาะเว็บ Free Download หรือ Game Server บางแห่ง

      ดังนั้นการโหลดได้เต็มสปีดเท่ากัน WAN ใดๆ ถือว่าปกติ ลองทดสอบด้วยวิธีเดียวกันนี้กับอีกหลายๆ hosting ดูครับ จะรู้ความแตกต่าง…

  39. aotyunsir 20 November 2010 at 7:30 pm Permalink

    ผมทำ load balance แบบ 2wan
    -ขอตัวอย่าง rule แยกเน็ตแยกเกมส์ แบบย่อๆทีคับ
    -ขอวิธี forwoard port เพื่อ monitor กล้องวงจรปิด เอาแบบย่อๆก็ได้คับ
    เอาระหว่าง PFsense กับ เล้าเตอ นะคับ
    ขอบคุณคับ

  40. piywit 3 December 2010 at 2:46 pm Permalink

    ผม กำหนด Rule แบบ ในวีดีโอ แล้ว ไม่สามารถ login เข้า ไปใน https://ชื่อเวปไซด:8443 ได้ครับ ใช้โปรแแกรม ควบคุม hosting CONTROL PANEL แบบParallels
    Plesk Panel 9.3 พอมีทางแก้ไหมครับ ส่วน load balance ใช้งานปกติ ครับ

    • laontalk 4 December 2010 at 9:05 pm Permalink

      แสดงว่าืเว็บไซต์ดังกล่าวไม่รองรับการเข้าถึงแบบ Multi IP address วิีธีการแก้ไขคือ กำหนด rule ให้ิวิ่งออก WAN1 (default)

      1. สร้าง LAN rule โดยที่ปลายทางคือ IP Address ของเว็บดังกล่าว
      2. เลือก gateway เป็น default
      3. เลื่อน rule ไว้เป็นอันดับที่ 3 ถ้าไม่ได้ให้เลื่อนไว้อันดับบนสุด

      • piywit 6 December 2010 at 5:55 am Permalink

        ขอบคุณ มากๆๆ เลย ครับ ผมหาทางแก้ ตั้งหลายวัน ไม่ได้ซักที รู้สึก web hosting หลายๆๆที่ก็ ใช้ Parallels Plesk Panel

  41. lighte 18 December 2010 at 4:05 pm Permalink

    ใน aliases ใส่ ip range อย่างไรครับ ลองดูแล้วมันมั่ว ๆ ไงไม่รู้(ผมอ่ะมั่วครับไม่ใช่โปรแกรมมั่ว)
    แล้วก็ เราจะดู IP เครื่องที่เชื่อมต่อเข้ามาทั้งหมดยังไงครับ ตอนนี้ดูได้แต่ที่แจก dhcp แล้วพวกที่ fix ip นี่มันไปแสดงตรงไหนครับ ขอบคุณมากๆ เลยนะครับ

    • laontalk 21 December 2010 at 10:08 am Permalink

      ใน Aliases ไม่สามารถกำหนด rang ของ IP Address ได้ครับ จะต้อง add ไปเรื่อยๆ หรืออาจจะกำหนด type = Network และเลือก CIDR ตั้งแต่ 1-32 ตามความเหมาะสม

      ปรกติการดู IP ให้ไปที่ Status > DHCP Leases กรณีที่เครื่อง client กำหนด IP Address เอง, บน pfSense ไม่สามารถรายงานได้ ต้องใช้โปรแกรมประเภท IP Scan ตรวจสอบดู

  42. piywit 2 January 2011 at 5:55 am Permalink

    พอมีใคร เคยใช้ ipad เข้าไป remote pfsense บ้างครับ เพราะเมื่อวานผมไป ลองใน shop มันเข้าไป ตรงหน้า เวปได้แต่ เปิด เมนู ย่อยไม่ได้เลยครับ พอมีทางแก้ไขได้ไหม

    • laontalk 5 January 2011 at 12:12 am Permalink

      ควรใช้ Google Chrome หรือ Firefox ครับ, ไม่ทราบว่า Ipad ติดตั้งได้หรือป่าว

  43. pole 3 January 2011 at 5:25 pm Permalink

    คือ เน็ตผม True 4M+TOT 6M ทำ LBL Pfsense 1.2.3 RC1
    แต่มาเช็คความเร็ว ได้แค่ 1/512 ช่วยทีครับ ผมผิดตรงใหน

    • laontalk 5 January 2011 at 12:13 am Permalink

      ทำตามวีดีโอ และคู่มือ .pdf แล้วก็ไม่ได้หรือครับ

  44. jojoepsp 17 January 2011 at 9:36 am Permalink

    สวัสดีครับ
    ถ้า เราจะกำหนด ให้ IP วงที่กำหนด เช่น 192.168.30.1-240 นี้ ออก สาย อีกเส้นหนึ่งเราต้องกำหนดตรงไหน แล้ว Pfsense สามารถ ทำได้ใช่ไหมครับ ถ้าได้รบกวนบอกถึง วิธีการทำได้ไหมครับ
    ที่ทำงาน มี net 2 เส้น true and 3BB. จะให้ IP ที่กำหนดวิ่งออกที่เส้นนี้เส้นเดียว เลย ครับ ไม่ว่าจะเกม หรือ อะไรก็ตามครับ ต้องทำงัยบ้าง รบกวนด้วยนะครับ
    ขอบคุณครับ

  45. jojoepsp 17 January 2011 at 10:20 am Permalink

    Why my comments r not appear On this blog. someone block me??

  46. jojoepsp 17 January 2011 at 10:22 am Permalink

    สอบถามเรื่อง การ กำหนดให้ IP ในวง เช่น 192.168.30.1 ถึง240 ไป ออกเน็ต เส้นที่ 2 ต้องกำหนดอย่างไรครับ คือแบบว่า ให้ ออกทุกอย่างที่เส้น นี้เลยน่ะครับ
    ที่ บ มี 2 เส้น true and 3bb. คับ อยากให้ IP นี้วิ้ง ออก แต่ เส้น 3bb อย่างเดียวเลยครับ เพราะว่า เขาใช้งาน เน็ต เยอะมากๆๆ ครับ

    ขอบคุณครับ
    โจ

  47. tanoy999 28 February 2011 at 9:26 am Permalink

    โหลด vdo เรื่องนี้ได้จากที่ไหนครับ …ขอบพระคุณครับ

  48. tcworks 7 March 2011 at 10:39 am Permalink

    ทำloadbalance แล้ว ใช้งานได้ดี ติดอยู่ที่เกมส์ ออดิชั่นเล่นไม่ได้ แก้ไขอย่างไรครับ ลูกค้าหายหมดแล้วครับ

    • laontalk 9 March 2011 at 2:15 am Permalink

      เกมส์ออดิชั่น บาง Sever (ส่วนใหญ่) ไม่รองรับ Multi IP Address ฉะนั้นวิธีแก้ปัญหาคือต้องสร้าง Rule บังคับให้เกมส์ดังกล่าว ออก WAN ใดๆ อย่างเดียวครับ..

  49. aofrangsit 9 March 2011 at 1:17 am Permalink

    ไม่ทราบว่า Diagram นี้ ทำ Load balance ได้มั้ยครับ

    http://image.ohozaa.com/show.php?id=e70b122e8bb516c8ebcc151c1619f857

    • laontalk 9 March 2011 at 2:22 am Permalink

      การทำ loadbalance จะต้องมีอย่างน้อย 2 WAN ขึ้นไป ฉะนั้น ตาม Diagram จึงทำ Loadbalance ไม่ได้ครับ

  50. aofrangsit 10 March 2011 at 12:45 pm Permalink

    แล้วถ้าจะทำ Load Balance ตาม Diagram นี้ครับ http://image.ohozaa.com/show.php?id=7592e202b380f05a5c9958b9bb3a41b1 ทำเป็น Wifi Hotspot ด้วย ทำ Load Balance ด้วย จะกำหนดค่าต่างจากใน VDO มั้ยครับ

    show.php?id=7592e202b380f05a5c9958b9bb3a41b1


Leave a Reply

You must be logged in to post a comment.

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIOC4muC4o+C4tOC4iOC4suC4hOC5gOC4h+C4tOC4meC4iuC5iOC4p+C4ouC5gOC4q+C4peC4t+C4reC4nOC4ueC5ieC4m+C4o+C4sOC4quC4muC4reC4uOC4l+C4geC4oOC4seC4oiDguJzguYjguLLguJnguKrguKDguLLguIHguLLguIrguLLguJTguYTguJfguKIsIOC4mOC4meC4suC4hOC4suC4o+C5hOC4l+C4ouC4nuC4suC4k+C4tOC4iuC4ouC5jCDguKrguLLguILguLLguKrguKDguLLguIHguLLguIrguLLguJTguYTguJfguKIsIOC4iuC4t+C5iOC4reC4muC4seC4jeC4iuC4tSDguKrguKDguLLguIHguLLguIrguLLguJTguYTguJfguKLguIrguYjguKfguKLguJzguLnguYnguJvguKPguLDguKrguJrguK3guLjguJfguIHguKDguLHguKIsIOC5gOC4peC4guC4l+C4teC5iOC4muC4seC4jeC4iuC4tSAwNDUtMy0wNDE5MC02IOC4muC4seC4jeC4iuC4teC4geC4o+C4sOC5geC4quC4o+C4suC4ouC4p+C4seC4mSBGYXg6IDAtMjI1Ni00MDk2IHd3dy5yZWRjcm9zcy5vci50aDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0X21vcmVfdGV4dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0X21vcmVfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfdGV4dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fkc19yb3RhdGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj48IS0tDQpnb29nbGVfYWRfY2xpZW50ID0gXCJwdWItMjY4Mjk4NDcyNjEzMzAzMFwiOw0KLyogMjUweDI1MCwg4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZ4LmB4Lil4LmJ4LinIDEyLzI5LzA4ICovDQpnb29nbGVfYWRfc2xvdCA9IFwiMjkwMTY2MjgxOFwiOw0KZ29vZ2xlX2FkX3dpZHRoID0gMjUwOw0KZ29vZ2xlX2FkX2hlaWdodCA9IDI1MDsNCi8vLS0+DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiDQpzcmM9XCJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL3Nob3dfYWRzLmpzXCI+DQo8L3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF8yNTBfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0yNTB4MjUwLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzI1MF91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Fkc2Vuc2U8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj48IS0tDQpnb29nbGVfYWRfY2xpZW50ID0gXCJwdWItMjY4Mjk4NDcyNjEzMzAzMFwiOw0KLyogNDY4eDYwLCDguJbguLnguIHguKrguKPguYnguLLguIfguILguLbguYnguJnguYHguKXguYnguKcgMTIvMjkvMDggKi8NCmdvb2dsZV9hZF9zbG90ID0gXCIzMDk5NjgzMzkyXCI7DQpnb29nbGVfYWRfd2lkdGggPSA0Njg7DQpnb29nbGVfYWRfaGVpZ2h0ID0gNjA7DQovLy0tPg0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIg0Kc3JjPVwiaHR0cDovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qc1wiPg0KPC9zY3JpcHQ+PC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTQ2OHg2MC0yLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMTwvc3Ryb25nPiAtIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9wcm9kdWN0X2Jhbm5lcnMvZVN0b3JlX2Jhbm5lcl8xMjVfMTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSBodHRwOi8vYmV0YWdsdWNhbjEuY29tL2ltYWdlcy9idXNpbmVzczEyNXgxMjUuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubHVuYXJwYWdlcy5jb20vYmFubmVycy9pbWFnZXMvYmFubmVyX2Fkc18xMjV4MTI1XzAyLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vYmV0YWdsdWNhbjEuY29tL2ltYWdlcy9iYW5uZXIxMjV4MTI1LTIucG5nPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3BhZ2U8L3N0cm9uZz4gLSBTZWxlY3QgYSBwYWdlOjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy00Njh4NjAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3LnRpcHNhbmR0cmlja3MtaHEuY29tL3dvcmRwcmVzcy1lc3RvcmUtcGx1Z2luLWNvbXBsZXRlLXNvbHV0aW9uLXRvLXNlbGwtZGlnaXRhbC1wcm9kdWN0cy1mcm9tLXlvdXItd29yZHByZXNzLWJsb2ctc2VjdXJlbHktMTA1OT9hcF9pZD1zeXNuYXA8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHA6Ly9iZXRhZ2x1Y2FuMS5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubHVuYXJwYWdlcy5jb20vaWQvc2VhdGVjaDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL2JldGFnbHVjYW4xLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF81PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzY8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGRlZmF1bHQuY3NzPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZXNfcGFnZTwvc3Ryb25nPiAtIEFyY2hpdmVzPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZV9jb250ZW50PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hcnRpY2xlc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2FydGljbGVzX3Rlcm1faWQ8L3N0cm9uZz4gLSA5OTwvbGk+PGxpPjxzdHJvbmc+d29vX2FzaWRlc19jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fYXNpZGVzX2VudHJpZXM8L3N0cm9uZz4gLSAxPC9saT48bGk+PHN0cm9uZz53b29fYXVkaW9fY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjxsaT48c3Ryb25nPndvb19hdWRpb190ZXJtX2lkPC9zdHJvbmc+IC0gMTAxPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Jncjwvc3Ryb25nPiAtIGRlZmF1bHQuY3NzPC9saT48bGk+PHN0cm9uZz53b29fYml0bHlfYXBpX2tleTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2JpdGx5X2FwaV9sb2dpbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2JvZHlfY29sb3I8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ib2R5X2ltZzwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2JvZHlfcG9zPC9zdHJvbmc+IC0gdG9wPC9saT48bGk+PHN0cm9uZz53b29fYm9keV9yZXBlYXQ8L3N0cm9uZz4gLSByZXBlYXQ8L2xpPjxsaT48c3Ryb25nPndvb19idXR0b25fY29sb3I8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfZXg8L3N0cm9uZz4gLSAxNTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9tZW51PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbW1lbnRzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY29udGFjdGZvcm1fZW1haWw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2FyY2hpdmVzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2hvbWU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9yc3M8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX3Nlb190ZW1wbGF0ZTwvc3Ryb25nPiAtIGE6Mjp7aTowO2E6NTp7czo0OiJuYW1lIjtzOjEwOiJzZW9faW5mb18xIjtzOjM6InN0ZCI7czowOiIiO3M6NToibGFiZWwiO3M6NDoiU0VPICI7czo0OiJ0eXBlIjtzOjQ6ImluZm8iO3M6NDoiZGVzYyI7czoxODk6IkFkZGl0aW9uYWwgU0VPIGN1c3RvbSBmaWVsZHMgYXZhaWxhYmxlOiA8c3Ryb25nPkN1c3RvbSBQYWdlIFRpdGxlczwvc3Ryb25nPi4gR28gdG8gPGEgaHJlZj0iaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtYWRtaW4vYWRtaW4ucGhwP3BhZ2U9d29vdGhlbWVzX3NlbyI+U0VPIFNldHRpbmdzPC9hPiBwYWdlIHRvIGFjdGl2YXRlLiI7fWk6MTthOjU6e3M6NDoibmFtZSI7czoxMDoic2VvX2ZvbGxvdyI7czozOiJzdGQiO3M6NToiZmFsc2UiO3M6NToibGFiZWwiO3M6MjE6IlNFTyAtIFJlbW92ZSBOb2ZvbGxvdyI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94IjtzOjQ6ImRlc2MiO3M6NTk6Ik1ha2UgbGluayBmcm9tIHRoaXMgcG9zdC9wYWdlIGZvbGxvd2FibGUgYnkgc2VhcmNoIGVuZ2luZXMuIjt9fTwvbGk+PGxpPjxzdHJvbmc+d29vX2R5bmFtaWNfaW1nX2hlaWdodDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19mYWNlYm9vazwvc3Ryb25nPiAtIG1hc2UudGI8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfZW50cmllczwvc3Ryb25nPiAtIDM8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9wb3N0czwvc3Ryb25nPiAtIDE8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gMjc5NTM0MDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5sYW9udGFsay5jb20vZm9ydW0vPC9saT48bGk+PHN0cm9uZz53b29fZmVlZF91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfZW50cmllczwvc3Ryb25nPiAtIDY8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfaWQ8L3N0cm9uZz4gLSAzNTM2ODEzNEBOMDY8L2xpPjxsaT48c3Ryb25nPndvb19mb250X3NpdGVfdGl0bGU8L3N0cm9uZz4gLSBhOjU6e3M6NDoic2l6ZSI7czoyOiI0MCI7czo0OiJ1bml0IjtzOjI6InB4IjtzOjQ6ImZhY2UiO3M6NzoiR2VvcmdpYSI7czo1OiJzdHlsZSI7czowOiIiO3M6NToiY29sb3IiO3M6NzoiIzAwMDAwMCI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX2ZvbnRfdGFnbGluZTwvc3Ryb25nPiAtIGE6NTp7czo0OiJzaXplIjtzOjI6IjE0IjtzOjQ6InVuaXQiO3M6MjoicHgiO3M6NDoiZmFjZSI7czo3OiJHZW9yZ2lhIjtzOjU6InN0eWxlIjtzOjY6Iml0YWxpYyI7czo1OiJjb2xvciI7czo3OiIjOTk5OTk5Ijt9PC9saT48bGk+PHN0cm9uZz53b29fZm9vdGVyX2FmZl9saW5rPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZm9vdGVyX2N1c3RvbTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fZm9vdGVyX2N1c3RvbV90ZXh0PC9zdHJvbmc+IC0gPHA+PC9wPjwvbGk+PGxpPjxzdHJvbmc+d29vX2Zvb3RfY2F0X21lbnU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Zvb3RfbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mcmFtZXdvcmtfdmVyc2lvbjwvc3Ryb25nPiAtIDIuOS4xNDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ncmF2YXRhcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2NvbnRlbnQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfbGlua19kZXNjPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rX3RleHQ8L3N0cm9uZz4gLSBIb21lPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VzX2NhdGVnb3J5PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VzX3Rlcm1faWQ8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9saW5rX3RvPC9zdHJvbmc+IC0gcG9zdDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fbGF5b3V0PC9zdHJvbmc+IC0gZGVmYXVsdC5waHA8L2xpPjxsaT48c3Ryb25nPndvb19saW5rc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2xpbmtzX3Rlcm1faWQ8L3N0cm9uZz4gLSAxMDQ8L2xpPjxsaT48c3Ryb25nPndvb19saW5rX2NvbG9yPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fbGlua19ob3Zlcl9jb2xvcjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3Lmxhb250YWxrLmNvbS9pbWFnZXMvbGFvbnRhbGstbG9nby1uZXcucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL3N1cHBvcnQvdGhlbWUtZG9jdW1lbnRhdGlvbi9tYWluc3RyZWFtPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19uZWVkc190dW1ibG9nX3VwZ3JhZGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX29wdGlvbnM8L3N0cm9uZz4gLSBhOjUyOntzOjE4OiJ3b29fYWx0X3N0eWxlc2hlZXQiO3M6MTE6ImRlZmF1bHQuY3NzIjtzOjg6Indvb19sb2dvIjtzOjQ4OiJodHRwOi8vd3d3Lmxhb250YWxrLmNvbS9pbWFnZXMvbGFvbnRhbGtfbG9nby5wbmciO3M6MTM6Indvb190ZXh0dGl0bGUiO3M6NToiZmFsc2UiO3M6MTk6Indvb19mb250X3NpdGVfdGl0bGUiO2E6NTp7czo0OiJzaXplIjtzOjI6IjQwIjtzOjQ6InVuaXQiO3M6MjoicHgiO3M6NDoiZmFjZSI7czo3OiJHZW9yZ2lhIjtzOjU6InN0eWxlIjtzOjA6IiI7czo1OiJjb2xvciI7czo3OiIjMDAwMDAwIjt9czoxNjoid29vX2ZvbnRfdGFnbGluZSI7YTo1OntzOjQ6InNpemUiO3M6MjoiMTQiO3M6NDoidW5pdCI7czoyOiJweCI7czo0OiJmYWNlIjtzOjc6Ikdlb3JnaWEiO3M6NToic3R5bGUiO3M6NjoiaXRhbGljIjtzOjU6ImNvbG9yIjtzOjc6IiM5OTk5OTkiO31zOjE4OiJ3b29fY3VzdG9tX2Zhdmljb24iO3M6MDoiIjtzOjIwOiJ3b29fZ29vZ2xlX2FuYWx5dGljcyI7czowOiIiO3M6MTI6Indvb19mZWVkX3VybCI7czowOiIiO3M6MTk6Indvb19zdWJzY3JpYmVfZW1haWwiO3M6MDoiIjtzOjIxOiJ3b29fY29udGFjdGZvcm1fZW1haWwiO3M6MDoiIjtzOjE0OiJ3b29fY3VzdG9tX2NzcyI7czowOiIiO3M6MTI6Indvb19jb21tZW50cyI7TjtzOjE0OiJ3b29fY3VzdG9tX3JzcyI7czo0OiJ0cnVlIjtzOjE2OiJ3b29faG9tZV9jb250ZW50IjtzOjU6ImZhbHNlIjtzOjE5OiJ3b29fYXJjaGl2ZV9jb250ZW50IjtzOjU6ImZhbHNlIjtzOjIxOiJ3b29fYXJ0aWNsZXNfY2F0ZWdvcnkiO3M6MTg6IlNlbGVjdCBhIGNhdGVnb3J5OiI7czoxOToid29vX2ltYWdlc19jYXRlZ29yeSI7czoxODoiU2VsZWN0IGEgY2F0ZWdvcnk6IjtzOjE3OiJ3b29faW1hZ2VfbGlua190byI7czo0OiJwb3N0IjtzOjE5OiJ3b29fdmlkZW9zX2NhdGVnb3J5IjtzOjE4OiJTZWxlY3QgYSBjYXRlZ29yeToiO3M6MTk6Indvb19xdW90ZXNfY2F0ZWdvcnkiO3M6MTg6IlNlbGVjdCBhIGNhdGVnb3J5OiI7czoxODoid29vX2xpbmtzX2NhdGVnb3J5IjtzOjE4OiJTZWxlY3QgYSBjYXRlZ29yeToiO3M6MTg6Indvb19hdWRpb19jYXRlZ29yeSI7czoxODoiU2VsZWN0IGEgY2F0ZWdvcnk6IjtzOjE0OiJ3b29fYWJvdXRfdGV4dCI7czowOiIiO3M6MTk6Indvb19hYm91dF9tb3JlX3RleHQiO3M6MDoiIjtzOjE4OiJ3b29fYWJvdXRfbW9yZV91cmwiO3M6MDoiIjtzOjE1OiJ3b29fdXJsX3Nob3J0ZW4iO3M6MTc6IlNlbGVjdCBhIFNlcnZpY2U6IjtzOjE5OiJ3b29fYml0bHlfYXBpX2xvZ2luIjtzOjA6IiI7czoxNzoid29vX2JpdGx5X2FwaV9rZXkiO3M6MDoiIjtzOjE0OiJ3b29fYm9keV9jb2xvciI7czowOiIiO3M6MTI6Indvb19ib2R5X2ltZyI7czowOiIiO3M6MTU6Indvb19ib2R5X3JlcGVhdCI7czo2OiJyZXBlYXQiO3M6MTI6Indvb19ib2R5X3BvcyI7czozOiJ0b3AiO3M6MTQ6Indvb19saW5rX2NvbG9yIjtzOjA6IiI7czoyMDoid29vX2xpbmtfaG92ZXJfY29sb3IiO3M6MDoiIjtzOjE2OiJ3b29fYnV0dG9uX2NvbG9yIjtzOjA6IiI7czoxMjoid29vX2NhdF9tZW51IjtzOjQ6InRydWUiO3M6MTU6Indvb19uYXZfZXhjbHVkZSI7czowOiIiO3M6MjI6Indvb19wb3N0X2ltYWdlX3N1cHBvcnQiO3M6NToiZmFsc2UiO3M6MTc6Indvb19waXNfaGFyZF9jcm9wIjtzOjU6ImZhbHNlIjtzOjEwOiJ3b29fcmVzaXplIjtzOjQ6InRydWUiO3M6MTI6Indvb19hdXRvX2ltZyI7czo1OiJmYWxzZSI7czoyMjoid29vX2R5bmFtaWNfaW1nX2hlaWdodCI7czo0OiJ0cnVlIjtzOjExOiJ3b29fdGh1bWJfdyI7aTo0NDA7czoxMToid29vX3RodW1iX2giO2k6MjAwO3M6MTU6Indvb190aHVtYl9hbGlnbiI7czo5OiJhbGlnbmxlZnQiO3M6MTY6Indvb190aHVtYl9zaW5nbGUiO3M6NToiZmFsc2UiO3M6MTI6Indvb19zaW5nbGVfdyI7aTo0NDA7czoxMjoid29vX3NpbmdsZV9oIjtpOjIwMDtzOjEzOiJ3b29fcnNzX3RodW1iIjtzOjU6ImZhbHNlIjtzOjE5OiJ3b29fZm9vdGVyX2FmZl9saW5rIjtzOjA6IiI7czoxNzoid29vX2Zvb3Rlcl9jdXN0b20iO3M6NToiZmFsc2UiO3M6MjI6Indvb19mb290ZXJfY3VzdG9tX3RleHQiO3M6NzoiPHA+PC9wPiI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX290aGVyX2VudHJpZXM8L3N0cm9uZz4gLSA0PC9saT48bGk+PHN0cm9uZz53b29fb3RoZXJfaGVhZGxpbmVzPC9zdHJvbmc+IC0gNDwvbGk+PGxpPjxzdHJvbmc+d29vX3Bpc19oYXJkX2Nyb3A8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Bvc3RfaW1hZ2Vfc3VwcG9ydDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fcHJvZmlsZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubGFvbnRhbGsuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvOC10aGFpMDFfcmVzaXplLmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX3F1b3Rlc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX3F1b3Rlc190ZXJtX2lkPC9zdHJvbmc+IC0gMTAzPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Jzc190aHVtYjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2VvX3RlbXBsYXRlPC9zdHJvbmc+IC0gYTozMTp7aTowO2E6Mjp7czo0OiJuYW1lIjtzOjY6IkJhc2ljcyI7czo0OiJ0eXBlIjtzOjc6ImhlYWRpbmciO31pOjE7YTozOntzOjQ6Im5hbWUiO3M6MTE6IlBsZWFzZSBSZWFkIjtzOjQ6InR5cGUiO3M6NDoiaW5mbyI7czozOiJzdGQiO3M6MzUyOiJXZWxjb21lIHRvIHRoZSBXb29TRU8gZmVhdHVyZS4gPGJyIC8+PHNtYWxsPkhlcmUgd2UgaGVscCB5b3UgdGFrZSBjb250cm9sIG9mIHlvdXIgc2VhcmNoIGVuZ2luZSByZWFkaW5lc3Mgd2l0aCBzb21lIGluLWJ1aWx0IHRoZW1lIG9wdGlvbnMuIE91ciB0aGVtZXMgZG8gaG93ZXZlciBzdXBwb3J0IHR3byBvZiBXb3JkUHJlc3Mub3JnJ3MgbW9zdCBjb21tb25seSB1c2VkIFNFTyBwbHVnaW5zIC0gPHN0cm9uZz5BbGwtaW4tT25lIFNFTzwvc3Ryb25nPiBhbmQgPHN0cm9uZz5IZWFkc3BhY2UgMjwvc3Ryb25nPi4gVXNlIHRoZSBjaGVja2JveCBiZWxvdyB0byB1c2UgM3JkIHBhcnR5IHBsdWdpbiBkYXRhLjwvc21hbGw+Ijt9aToyO2E6NTp7czo0OiJuYW1lIjtzOjI1OiJVc2UgM3JkIFBhcnR5IFBsdWdpbiBEYXRhIjtzOjQ6ImRlc2MiO3M6MTk4OiJNZXRhIGRhdGEgYWRkZWQgdG8gPHN0cm9uZz5jdXN0b20gZmllbGRzIGluIHBvc3RzIGFuZCBwYWdlczwvc3Ryb25nPiB3aWxsIGJlIGV4dHJhY3RlZCBhbmQgdXNlZCB3aGVyZSBhcHBsaWNhYmxlLiBUaGlzIHR5cGljYWxseSBkb2VzIG5vdCBpbmNsdWRlIEhvbWVwYWdlcyBhbmQgQXJjaGl2ZXMsIGFuZCBvbmx5IFNpbmd1bGFyIHRlbXBsYXRlcy4iO3M6MjoiaWQiO3M6Mjg6InNlb193b29fdXNlX3RoaXJkX3BhcnR5X2RhdGEiO3M6Mzoic3RkIjtzOjU6ImZhbHNlIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjM7YTo1OntzOjQ6Im5hbWUiO3M6MjI6IkhpZGUgU0VPIGN1c3RvbSBmaWVsZHMiO3M6NDoiZGVzYyI7czo4MjoiQ2hlY2sgdGhpcyBib3ggdG8gaGlkZSB0aGUgaW5wdXQgZmllbGRzIGNyZWF0ZWQgaW4gdGhlIHBvc3QgYW5kIHBhZ2UgZWRpdCBzY3JlZW5zLiI7czoyOiJpZCI7czoxOToic2VvX3dvb19oaWRlX2ZpZWxkcyI7czozOiJzdGQiO3M6NToiZmFsc2UiO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6NDthOjI6e3M6NDoibmFtZSI7czoxMDoiUGFnZSBUaXRsZSI7czo0OiJ0eXBlIjtzOjc6ImhlYWRpbmciO31pOjU7YTo1OntzOjQ6Im5hbWUiO3M6OToiU2VwYXJhdG9yIjtzOjQ6ImRlc2MiO3M6NTQ6IkRlZmluZSBhIG5ldyBzZXBhcmF0b3IgY2hhcmFjdGVyIGZvciB5b3VyIHBhZ2UgdGl0bGVzLiI7czoyOiJpZCI7czoxNzoic2VvX3dvb19zZXBlcmF0b3IiO3M6Mzoic3RkIjtzOjE6InwiO3M6NDoidHlwZSI7czo0OiJ0ZXh0Ijt9aTo2O2E6NTp7czo0OiJuYW1lIjtzOjEwOiJCbG9nIFRpdGxlIjtzOjQ6ImRlc2MiO3M6OTA6Ik5PVEU6IFRoaXMgaXMgdGhlIHNhbWUgc2V0dGluZyBhcyBwZXIgdGhlIFNFVFRJTkdTID4gR0VORVJBTCB0YWIgaW4gdGhlIFdvcmRQcmVzcyBiYWNrZW5kLiI7czoyOiJpZCI7czo4OiJibG9nbmFtZSI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6NDoidGV4dCI7fWk6NzthOjU6e3M6NDoibmFtZSI7czoxNjoiQmxvZyBEZXNjcmlwdGlvbiI7czo0OiJkZXNjIjtzOjkwOiJOT1RFOiBUaGlzIGlzIHRoZSBzYW1lIHNldHRpbmcgYXMgcGVyIHRoZSBTRVRUSU5HUyA+IEdFTkVSQUwgdGFiIGluIHRoZSBXb3JkUHJlc3MgYmFja2VuZC4iO3M6MjoiaWQiO3M6MTU6ImJsb2dkZXNjcmlwdGlvbiI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6NDoidGV4dCI7fWk6ODthOjY6e3M6NDoibmFtZSI7czoxODoiRW5hYmxlIHdvb190aXRsZSgpIjtzOjQ6ImRlc2MiO3M6MTUzOiJ3b29fdGl0bGUoKSBtYWtlcyB1c2Ugb2YgV29yZFByZXNzJ3MgYnVpbHQgaW4gd3BfdGl0bGUoKSBmdW5jdGlvbiB0byBjb250cm9sIHRoZSBvdXRwdXQgZm9yIHlvdXIgcGFnZSB0aXRsZXMuIEl0J3MgYWxzbyByZWNvbW1lbmRlZCBmb3IgdXNlIHdpdGggcGx1Z2lucy4iO3M6MjoiaWQiO3M6MTY6InNlb193b29fd3BfdGl0bGUiO3M6Mzoic3RkIjtzOjU6ImZhbHNlIjtzOjU6ImNsYXNzIjtzOjk6ImNvbGxhcHNlZCI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo5O2E6Njp7czo0OiJuYW1lIjtzOjIxOiJEaXNhYmxlIEN1c3RvbSBUaXRsZXMiO3M6NDoiZGVzYyI7czoxMzA6IklmIHlvdSBwcmVmZXIgdG8gaGF2ZSB1bmlmb3JtIHRpdGxlcyBhY3Jvc3MgeW91IHRoZW1lLiBBbHRlcm5hdGl2ZWx5IHRoZXkgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbSBjdXN0b20gZmllbGRzIGFuZC9vciBwbHVnaW4gZGF0YS4iO3M6MjoiaWQiO3M6Mjk6InNlb193b29fd3BfY3VzdG9tX2ZpZWxkX3RpdGxlIjtzOjM6InN0ZCI7czo1OiJmYWxzZSI7czo1OiJjbGFzcyI7czo2OiJoaWRkZW4iO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6MTA7YTo2OntzOjQ6Im5hbWUiO3M6MTQ6IlBhZ2VkIFZhcmlhYmxlIjtzOjQ6ImRlc2MiO3M6NjQ6IlRoZSBuYW1lIHZhcmlhYmxlIHRoYXQgd2lsbCBhcHBlYXIgdGhlbiBwYWdpbmcgdGhyb3VnaCBhcmNoaXZlcy4iO3M6MjoiaWQiO3M6MTc6InNlb193b29fcGFnZWRfdmFyIjtzOjM6InN0ZCI7czo0OiJQYWdlIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo0OiJ0eXBlIjtzOjQ6InRleHQiO31pOjExO2E6Nzp7czo0OiJuYW1lIjtzOjIzOiJQYWdlZCBWYXJpYWJsZSBQb3NpdGlvbiI7czo0OiJkZXNjIjtzOjU3OiJDaGFuZ2UgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBwYWdlZCB2YXJpYWJsZSB3aWxsIGFwcGVhci4iO3M6MjoiaWQiO3M6MjE6InNlb193b29fcGFnZWRfdmFyX3BvcyI7czozOiJzdGQiO3M6NjoiYmVmb3JlIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo3OiJvcHRpb25zIjthOjI6e3M6NjoiYmVmb3JlIjtzOjY6IkJlZm9yZSI7czo1OiJhZnRlciI7czo1OiJBZnRlciI7fXM6NDoidHlwZSI7czo3OiJzZWxlY3QyIjt9aToxMjthOjc6e3M6NDoibmFtZSI7czoyMToiSG9tZXBhZ2UgVGl0bGUgTGF5b3V0IjtzOjQ6ImRlc2MiO3M6NjU6IkRlZmluZSB0aGUgb3JkZXIgdGhlIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgbWV0YSBkYXRhIGFwcGVhcnMgaW4uIjtzOjI6ImlkIjtzOjE5OiJzZW9fd29vX2hvbWVfbGF5b3V0IjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NjoiaGlkZGVuIjtzOjc6Im9wdGlvbnMiO2E6Mzp7czoxOiJhIjtzOjI4OiJCbG9nIHRpdGxlOyBibG9nIGRlc2NyaXB0aW9uIjtzOjE6ImIiO3M6MTA6IkJsb2cgdGl0bGUiO3M6MToiYyI7czoxNjoiQmxvZyBkZXNjcmlwdGlvbiI7fXM6NDoidHlwZSI7czo3OiJzZWxlY3QyIjt9aToxMzthOjc6e3M6NDoibmFtZSI7czoxOToiU2luZ2xlIFRpdGxlIExheW91dCI7czo0OiJkZXNjIjtzOjY1OiJEZWZpbmUgdGhlIG9yZGVyIHRoZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIG1ldGEgZGF0YSBhcHBlYXJzIGluLiI7czoyOiJpZCI7czoyMToic2VvX3dvb19zaW5nbGVfbGF5b3V0IjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NjoiaGlkZGVuIjtzOjc6Im9wdGlvbnMiO2E6NTp7czoxOiJhIjtzOjIyOiJQYWdlIHRpdGxlOyBCbG9nIHRpdGxlIjtzOjE6ImIiO3M6MTE6IlBhZ2UgdGl0bGU7IjtzOjE6ImMiO3M6MjM6IkJsb2cgdGl0bGU7IFBhZ2UgdGl0bGU7IjtzOjE6ImQiO3M6Mjg6IlBhZ2UgdGl0bGU7IEJsb2cgZGVzY3JpcHRpb24iO3M6MToiZSI7czo0MDoiQmxvZyB0aXRsZTsgUGFnZSB0aXRsZTsgQmxvZyBkZXNjcmlwdGlvbiI7fXM6NDoidHlwZSI7czo3OiJzZWxlY3QyIjt9aToxNDthOjc6e3M6NDoibmFtZSI7czoxNzoiUGFnZSBUaXRsZSBMYXlvdXQiO3M6NDoiZGVzYyI7czo2NToiRGVmaW5lIHRoZSBvcmRlciB0aGUgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCBtZXRhIGRhdGEgYXBwZWFycyBpbi4iO3M6MjoiaWQiO3M6MTk6InNlb193b29fcGFnZV9sYXlvdXQiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJjbGFzcyI7czo2OiJoaWRkZW4iO3M6Nzoib3B0aW9ucyI7YTo1OntzOjE6ImEiO3M6MjI6IlBhZ2UgdGl0bGU7IEJsb2cgdGl0bGUiO3M6MToiYiI7czoxMToiUGFnZSB0aXRsZTsiO3M6MToiYyI7czoyMzoiQmxvZyB0aXRsZTsgUGFnZSB0aXRsZTsiO3M6MToiZCI7czoyODoiUGFnZSB0aXRsZTsgQmxvZyBkZXNjcmlwdGlvbiI7czoxOiJlIjtzOjQwOiJCbG9nIHRpdGxlOyBQYWdlIHRpdGxlOyBCbG9nIGRlc2NyaXB0aW9uIjt9czo0OiJ0eXBlIjtzOjc6InNlbGVjdDIiO31pOjE1O2E6Nzp7czo0OiJuYW1lIjtzOjIwOiJBcmNoaXZlIFRpdGxlIExheW91dCI7czo0OiJkZXNjIjtzOjY1OiJEZWZpbmUgdGhlIG9yZGVyIHRoZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIG1ldGEgZGF0YSBhcHBlYXJzIGluLiI7czoyOiJpZCI7czoyMjoic2VvX3dvb19hcmNoaXZlX2xheW91dCI7czozOiJzdGQiO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo3OiJvcHRpb25zIjthOjU6e3M6MToiYSI7czoyMjoiUGFnZSB0aXRsZTsgQmxvZyB0aXRsZSI7czoxOiJiIjtzOjExOiJQYWdlIHRpdGxlOyI7czoxOiJjIjtzOjIzOiJCbG9nIHRpdGxlOyBQYWdlIHRpdGxlOyI7czoxOiJkIjtzOjI4OiJQYWdlIHRpdGxlOyBCbG9nIGRlc2NyaXB0aW9uIjtzOjE6ImUiO3M6NDA6IkJsb2cgdGl0bGU7IFBhZ2UgdGl0bGU7IEJsb2cgZGVzY3JpcHRpb24iO31zOjQ6InR5cGUiO3M6Nzoic2VsZWN0MiI7fWk6MTY7YToyOntzOjQ6Im5hbWUiO3M6MTM6IkluZGV4aW5nIE1ldGEiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToxNzthOjY6e3M6NDoibmFtZSI7czoxNjoiQXJjaGl2ZSBJbmRleGluZyI7czo0OiJkZXNjIjtzOjEyODoiU2VsZWN0IHdoaWNoIGFyY2hpdmVzIHRvIGluZGV4IG9uIHlvdXIgc2l0ZS4gQWlkcyBpbiByZW1vdmluZyBkdXBsaWNhdGUgY29udGVudCBmcm9tIGJlaW5nIGluZGV4ZWQsIHByZXZlbnRpbmcgY29udGVudCBkaWx1dGlvbi4iO3M6MjoiaWQiO3M6MjE6InNlb193b29fbWV0YV9pbmRleGluZyI7czozOiJzdGQiO3M6ODoiY2F0ZWdvcnkiO3M6NDoidHlwZSI7czoxMDoibXVsdGljaGVjayI7czo3OiJvcHRpb25zIjthOjU6e3M6ODoiY2F0ZWdvcnkiO3M6MTc6IkNhdGVnb3J5IEFyY2hpdmVzIjtzOjM6InRhZyI7czoxMjoiVGFnIEFyY2hpdmVzIjtzOjY6ImF1dGhvciI7czoxMjoiQXV0aG9yIFBhZ2VzIjtzOjY6InNlYXJjaCI7czoxNDoiU2VhcmNoIFJlc3VsdHMiO3M6NDoiZGF0ZSI7czoxMzoiRGF0ZSBBcmNoaXZlcyI7fX1pOjE4O2E6NTp7czo0OiJuYW1lIjtzOjQ5OiJBZGQgbWV0YSBmb3IgUG9zdHMgJiBQYWdlcyB0byAnZm9sbG93JyBieSBkZWZhdWx0IjtzOjQ6ImRlc2MiO3M6MTQzOiJCeSBkZWZhdWx0IHRoZSB3b29fbWV0YSgpOyBhZGRzIGEgJ25vZm9sbG93JyBtZXRhIHRvIHBvc3QgYW5kIHBhZ2VzLCBtZWFuaW5nIHNlYXJjaCBlbmdpbmVzIHdpbGwgbm90IGluZGV4IHBhZ2VzIGxlYWRpbmcgYXdheSBmcm9tIHRoZXNlIHBhZ2VzLiI7czoyOiJpZCI7czoyNjoic2VvX3dvb19tZXRhX3NpbmdsZV9mb2xsb3ciO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aToxOTthOjI6e3M6NDoibmFtZSI7czoxNjoiRGVzY3JpcHRpb24gTWV0YSI7czo0OiJ0eXBlIjtzOjc6ImhlYWRpbmciO31pOjIwO2E6Njp7czo0OiJuYW1lIjtzOjIwOiJIb21lcGFnZSBEZXNjcmlwdGlvbiI7czo0OiJkZXNjIjtzOjYxOiJDaG9vc2Ugd2hlcmUgdG8gcG9wdWxhdGUgeW91ciBIb21lcGFnZSBtZXRhIGRlc2NyaXB0aW9uIGZyb20uIjtzOjI6ImlkIjtzOjIyOiJzZW9fd29vX21ldGFfaG9tZV9kZXNjIjtzOjM6InN0ZCI7czoxOiJhIjtzOjc6Im9wdGlvbnMiO2E6Mzp7czoxOiJhIjtzOjM6Ik9mZiI7czoxOiJiIjtzOjI0OiJGcm9tIFdQIFNpdGUgRGVzY3JpcHRpb24iO3M6MToiYyI7czozMjoiRnJvbSBDdXN0b20gSG9tZXBhZ2UgRGVzY3JpcHRpb24iO31zOjQ6InR5cGUiO3M6NToicmFkaW8iO31pOjIxO2E6NTp7czo0OiJuYW1lIjtzOjI3OiJDdXN0b20gSG9tZXBhZ2UgRGVzY3JpcHRpb24iO3M6NDoiZGVzYyI7czo0NzoiQWRkIGEgY3VzdG9tIG1ldGEgZGVzY3JpcHRpb24gdG8geW91ciBob21lcGFnZS4iO3M6MjoiaWQiO3M6Mjk6InNlb193b29fbWV0YV9ob21lX2Rlc2NfY3VzdG9tIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo4OiJ0ZXh0YXJlYSI7fWk6MjI7YTo2OntzOjQ6Im5hbWUiO3M6Mjg6IlNpbmdsZSBQYWdlL1Bvc3QgRGVzY3JpcHRpb24iO3M6NDoiZGVzYyI7czo3OToiQWRkIHlvdXIgcG9zdC9wYWdlIGRlc2NyaXB0aW9uIGZyb20gY3VzdG9tIGZpZWxkcy4gPHN0cm9uZz4qIFNlZSBiZWxvdzwvc3Ryb25nPiI7czoyOiJpZCI7czoyNDoic2VvX3dvb19tZXRhX3NpbmdsZV9kZXNjIjtzOjM6InN0ZCI7czoxOiJhIjtzOjc6Im9wdGlvbnMiO2E6Mzp7czoxOiJhIjtzOjU6Ik9mZiAqIjtzOjE6ImIiO3M6MzM6IkZyb20gQ3VzdG9tcyBGaWVsZCBhbmQvb3IgUGx1Z2lucyI7czoxOiJjIjtzOjM2OiJBdXRvbWF0aWNhbGx5IGZyb20gUG9zdC9QYWdlIENvbnRlbnQiO31zOjQ6InR5cGUiO3M6NToicmFkaW8iO31pOjIzO2E6Njp7czo0OiJuYW1lIjtzOjI5OiJHbG9iYWwgUG9zdC9QYWdlIERlc2NyaXB0aW9ucyI7czo0OiJkZXNjIjtzOjE4OToiQWRkIGEgY3VzdG9tIG1ldGEgZGVzY3JpcHRpb24gdG8geW91ciBwb3N0cyBhbmQgcGFnZXMuIFRoaXMgd2lsbCBvbmx5IHNob3cgaWYgbm8gb3RoZXIgZGF0YSBpcyBhdmFpbGFibGUgZnJvbSB0aGUgc2VsZWN0aW9uIGFib3ZlLiBXaWxsIHN0aWxsIGJlIGFkZGVkIGV2ZW4gaWYgc2V0dGluZyBhYm92ZSBpcyBzZXQgdG8gIk9mZiIuIjtzOjI6ImlkIjtzOjMzOiJzZW9fd29vX21ldGFfc2luZ2xlX2Rlc2Nfc2l0ZXdpZGUiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJjbGFzcyI7czo5OiJjb2xsYXBzZWQiO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6MjQ7YTo2OntzOjQ6Im5hbWUiO3M6MjI6IkFkZCBHbG9iYWwgRGVzY3JpcHRpb24iO3M6NDoiZGVzYyI7czoyNzoiQWRkIHlvdXIgZ2xvYmFsIGRlY3JpcHRpb24uIjtzOjI6ImlkIjtzOjMxOiJzZW9fd29vX21ldGFfc2luZ2xlX2Rlc2NfY3VzdG9tIjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NjoiaGlkZGVuIjtzOjQ6InR5cGUiO3M6ODoidGV4dGFyZWEiO31pOjI1O2E6Mjp7czo0OiJuYW1lIjtzOjEyOiJLZXl3b3JkIE1ldGEiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToyNjthOjY6e3M6NDoibmFtZSI7czoxNzoiSG9tZXBhZ2UgS2V5d29yZHMiO3M6NDoiZGVzYyI7czo2MToiQ2hvb3NlIHdoZXJlIHRvIHBvcHVsYXRlIHlvdXIgSG9tZXBhZ2UgbWV0YSBkZXNjcmlwdGlvbiBmcm9tLiI7czoyOiJpZCI7czoyMToic2VvX3dvb19tZXRhX2hvbWVfa2V5IjtzOjM6InN0ZCI7czoxOiJhIjtzOjc6Im9wdGlvbnMiO2E6Mjp7czoxOiJhIjtzOjM6Ik9mZiI7czoxOiJjIjtzOjI5OiJGcm9tIEN1c3RvbSBIb21lcGFnZSBLZXl3b3JkcyI7fXM6NDoidHlwZSI7czo1OiJyYWRpbyI7fWk6Mjc7YTo1OntzOjQ6Im5hbWUiO3M6MjQ6IkN1c3RvbSBIb21lcGFnZSBLZXl3b3JkcyI7czo0OiJkZXNjIjtzOjU4OiJBZGQgYSAoY29tbWEgc2VwYXJhdGVkKSBsaXN0IG9mIGtleXdvcmRzIHRvIHlvdXIgaG9tZXBhZ2UuIjtzOjI6ImlkIjtzOjI4OiJzZW9fd29vX21ldGFfaG9tZV9rZXlfY3VzdG9tIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo4OiJ0ZXh0YXJlYSI7fWk6Mjg7YTo2OntzOjQ6Im5hbWUiO3M6MjU6IlNpbmdsZSBQYWdlL1Bvc3QgS2V5d29yZHMiO3M6NDoiZGVzYyI7czo3NToiQWRkIHlvdXIgcG9zdC9wYWdlIGtleXdvcmRzIGZyb20gY3VzdG9tIGZpZWxkLiA8c3Ryb25nPiogU2VlIGJlbG93PC9zdHJvbmc+IjtzOjI6ImlkIjtzOjIzOiJzZW9fd29vX21ldGFfc2luZ2xlX2tleSI7czozOiJzdGQiO3M6MToiYSI7czo3OiJvcHRpb25zIjthOjM6e3M6MToiYSI7czo1OiJPZmYgKiI7czoxOiJiIjtzOjMzOiJGcm9tIEN1c3RvbSBGaWVsZHMgYW5kL29yIFBsdWdpbnMiO3M6MToiYyI7czo0NToiQXV0b21hdGljYWxseSBmcm9tIFBvc3QgVGFncyAmYW1wOyBDYXRlZ29yaWVzIjt9czo0OiJ0eXBlIjtzOjU6InJhZGlvIjt9aToyOTthOjY6e3M6NDoibmFtZSI7czoyNToiQ3VzdG9tIFBvc3QvUGFnZSBLZXl3b3JkcyI7czo0OiJkZXNjIjtzOjIzNDoiQWRkIGEgY3VzdG9tIG1ldGEga2V5d29yZHMgdG8geW91ciBwb3N0cyBhbmQgcGFnZXMuIFRoaXMgd2lsbCBvbmx5IHNob3cgaWYgbm8gb3RoZXIgZGF0YSBpcyBhdmFpbGFibGUgZnJvbSB0aGUgc2VsZWN0aW9uIGFib3ZlLiBFdmVuIGlmIHRoZSBvcHRpb24gYWJvdmUgaXMgc2V0IHRvIDxzdHJvbmc+J09mZic8L3N0cm9uZz4sIHdpbGwgdGhpcyBrZXl3b3JkcyBzdGlsbCBiZSBhZGRlZCB0byB5b3VyIHNpdGUuIjtzOjI6ImlkIjtzOjMyOiJzZW9fd29vX21ldGFfc2luZ2xlX2tleV9zaXRld2lkZSI7czozOiJzdGQiO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjk6ImNvbGxhcHNlZCI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTozMDthOjY6e3M6NDoibmFtZSI7czoyODoiQ3VzdG9tIFBvc3QvUGFnZSBEZXNjcmlwdGlvbiI7czo0OiJkZXNjIjtzOjUxOiJBZGQgYSBjdXN0b20gbWV0YSBrZXl3b3JkcyB0byB5b3VyIHBvc3RzIGFuZCBwYWdlcy4iO3M6MjoiaWQiO3M6MzA6InNlb193b29fbWV0YV9zaW5nbGVfa2V5X2N1c3RvbSI7czozOiJzdGQiO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjY6ImhpZGRlbiI7czo0OiJ0eXBlIjtzOjg6InRleHRhcmVhIjt9fTwvbGk+PGxpPjxzdHJvbmc+d29vX3NldHRpbmdzX2N1c3RvbV9uYXZfYWR2YW5jZWRfb3B0aW9uczwvc3Ryb25nPiAtIHllczwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfYWRzX2JvdHRvbTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X2Fkc190b3A8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2hvd19mZWF0dXJlZDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3ZpZGVvPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oPC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2hlaWdodDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV93PC9zdHJvbmc+IC0gNDQwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fc3Vic2NyaWJlX2VtYWlsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fdGV4dHRpdGxlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBNYWluc3RyZWFtPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfYWxpZ248L3N0cm9uZz4gLSBhbGlnbmxlZnQ8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9oPC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfc2luZ2xlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93PC9zdHJvbmc+IC0gNDQwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb190d2l0dGVyPC9zdHJvbmc+IC0gbGFvbnRhbGs8L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYTo3OntpOjA7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy85LTQ2OHg2MC1iYW5uZXIucG5nIjtpOjE7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LXRoYWkwMV9yZXNpemUuanBnIjtpOjI7czo2NjoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy83LXRoYWkwMV9yZXNpemUuanBnIjtpOjM7czo2MzoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy82LXdlbG92ZXRoYWkuanBnIjtpOjQ7czo1NzoiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LXRoYWkucG5nIjtpOjU7czo2NToiaHR0cDovL3d3dy5sYW9udGFsay5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy80LWlhbV9sYW9udGFsay5qcGciO2k6NjtzOjY1OiJodHRwOi8vd3d3Lmxhb250YWxrLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtaWFtX2xhb250YWxrLmpwZyI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3VybF9zaG9ydGVuPC9zdHJvbmc+IC0gU2VsZWN0IGEgU2VydmljZTo8L2xpPjxsaT48c3Ryb25nPndvb192aWRlb3NfY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjxsaT48c3Ryb25nPndvb192aWRlb19jYXRlZ29yeTwvc3Ryb25nPiAtIFZpZGVvczwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX3Rlcm1faWQ8L3N0cm9uZz4gLSAxMDI8L2xpPjwvdWw+