Login
    
Login

20 February 2009 ~ 126 Comments

ตอนที่3: การติดตั้ง Squid Proxy + Lightsquid

pfSense Package Installation วันนี้จะพูดถึงวิธีการติดตั้งและใช้งาน Squid Proxy + Lightsquid ซึ่งทำหน้าที่เป็น Proxy Server และ Proxy Reports ตามลำดับ ไฟล์วีดีโอความยาว 18 นาที ตอนแรกตั้งใจจะไม่ให้ยาวขนาดนี้เพราะกลัวจะโหลดช้า พอดีจบไม่ลงจริง ๆ where ๆ is where ๆ (ฝรั่งงง)

หัวข้อการบรรยาย

การติดตั้ง Squid – Proxy Server
การติดตั้ง Lightsquid – Proxy Report
การยกเลิก Package

โหลดไฟล์คุณภาพสูง วีดีโอสอนการติดตั้ง Squid Proxy + Lightsquid Link-1

เพิ่มเติมเกี่ยวกับวิธีการเก็บ Syslog ตาม พรบ. คอมพิวเตอร์

1. ทำการติดตั้งโปรแกรม Syslog Server เช่น Kiwi Syslog Server หรือ Syslog Watcher เลือกที่เป็น Freeware
2. ทำการ Enable syslog’ing to remote syslog server โดยไปที่ Status > System logs > Settings ใส่หมายเลข IP Address ของเครื่อง Syslog Server ตามตัวอย่าง

Enable remote syslog server

Kiwi syslog
รูปภาพแสดง: Kiwi Syslog Server

Did you like this? Share it:
 

126 Responses to “ตอนที่3: การติดตั้ง Squid Proxy + Lightsquid”

  1. laontalk 27 September 2009 at 4:08 am Permalink

    การใช้งาน Transparent proxy เครื่อง Client จะต้องไม่ติดตั้ง Proxy อันนี้เข้าใจตรงกันนะครับ
    อยากให้ทดลองใหม่ด้วยขั้นตอนง่ายๆ โดยใช้ pfSense 1.2.3 RC1

    1. ติดตั้ง pfsenes และเชื่อมต่อ Internet ให้ได้เสียก่อน

    2. ติดต้ง Squid Proxy โดยเลือกเงื่อนไขตามนี้
    - Proxy interface : LAN
    - Allow users on interface : Checked
    - Transparent proxy : Checked
    - Enable Logging : Checked
    ส่วนอื่นๆ ปล่อยเป็นค่าเริ่มต้นทั้งหมด แล้วทำการ restart เครื่อง
    จากนั้นทดลองเข้า Internet ครับ

    3. ติดตั้ง Light Squid ตามวีดีโอสอน, ถ้าต้องการให้แสดงวันที่ล่าสุดให้ กด Refresh now / Refresh Full

  2. areaspk 27 September 2009 at 8:06 pm Permalink

    ผมปฏิบัติตาม VDO ทุกขั้นตอน เคยได้ครับแต่ วันนี้กลับเข้าหน้า login

  3. chinna 28 September 2009 at 12:12 pm Permalink

    สอบถามเรื่อง Log หน่อย คืออยากจะส่ง Log ของ Squid ไปเก็บไว้ที่ Kiwi Syslog ด้วยต้อง Config ค่าอย่างไรครับ พอดีหาในเมนูของ Proxy Server ที่ลงใน pfsense แล้วไม่เจอ ช่วยแนะนำหน่อยครับ

  4. laontalk 28 September 2009 at 2:51 pm Permalink

    เซ็ตที่ Services -> Proxy Server -> Custom Options
    ให้ใส่ค่าดังต่อไปนี้

    access_log syslog squid

    เสร็จแล้วลองตรวจสอบที่ System Logs -> Portal Auth จะพบรายการของ Proxy Log, เมื่อตรวจสอบบน KiWi Syslog ก็จะมีรายการดังกล่าวเช่นกัน

    ที่มา L i n u x ~ G i r l (o^-^o) แ ส น สุ ข
    http://namojung.blogspot.com/2009/06/squid-log-pfsense-rsyslog.html

  5. chinna 29 September 2009 at 10:07 pm Permalink

    ขอบคุณมากๆ ครับ

    รบกวนอีกเรื่องครับ คือผมลง Squid Proxy กับเครื่องที่เป็น LoadBalance(2Wan) ครับ พอลงไปแล้ว LoadBalance จะไม่ทำงานเลย Traffic ออกไปทางขา Wan ทั้งหมด ขา OPT1 ไม่มี Traffic วิ่งเลยเหมือน LoadBalance มันไม่ทำงาน แก้ไขอย่างไรได้บ้างครับ

  6. laontalk 9 October 2009 at 11:01 pm Permalink

    Loadbalance Failover ไม่สนับสนุน Squid Proxy, Traffic Shaper ครับ, แก้ไขด้วยการเพิ่ม pfsense เข้ามาอีก 1 เครื่อง
    1 สำหรับ Loadbalance Failover
    1 สำหรับ Proxy Server

    หรือ
    1 สำหรับ Loadbalance Failover
    แล้วใช้ Linux ตัวอื่นทำหน้าที่เป็น Proxy Sever แทนครับ

    หรือ
    ใช้ pfSense 2.0 ครับ แต่ตอนนี้ยังเป็นเวอร์ชั่นทดลองอยู่ คงต้องรอสักพักใหญ่ๆ ถึงจะ stable ครับ

  7. dangerman 12 October 2009 at 1:20 am Permalink

    - อยากทราบว่า ทำอย่างไรที่จะให้ pfsense สามารถระบุ speed ของแต่ละ user ให้ไม่เท่ากันได้บ้าง เช่น user A = 1024, user B = 512 อะไรทำนองเนี่ยอ่ะครับ
    - และสอบถามเรื่องการเก็บ log ไม่ทราบว่า โดยปกติ pfsense ก็สามารถเก็บได้อยู่แล้วใช่หรือเปล่าครับ
    - แล้วเวลาจะเอามาตรวจสอบ ต้องดูจากอะไรครับ หรือว่าควรตั้งค่าให้ไปเก็บที่เครื่องอื่น ดีกว่าครับ

  8. laontalk 12 October 2009 at 3:50 pm Permalink

    - การกำหนดให้ Bandwidth ของแต่ละ User แตกต่างกัน pfSense ย้งทำไม่ได้ครับ ผมหาวิธีอยู่เหมือนกัน

    - pfSense จะเก็บ syslog ไว้ใน Cache ซึ่งได้แค่จำนวนหนึ่งเท่านั้น ถ้ามี syslog มาใหม่ก็จะเขียนทับทันที วิธีแก้ไขต้องใช้ Syslog Server มาช่วยครับ

  9. dangerman 20 October 2009 at 12:00 am Permalink

    - ปกติ admin จะเป็นผู้เข้ามากำหนด user จะมีการตั้ง user ขึ้นมาใหม่ได้หรือไม่ ในกรณี admin ไม่ได้เข้ามาทำเอง แต่ไม่อยากให้สิทธิทั้งหมด พร้อมทั้งกำหนดสิทธิว่า ห้ามลบ user แต่เพิ่ม user ได้ pfsense สามารถทำได้หรือเปล่าครับ
    - การกำหนดในแต่ละ user นั้นมีให้ expire แต่สามารถ expire เป็นแบบรายชั่วโมงได้หรือไม่ครับ

  10. laontalk 20 October 2009 at 9:49 pm Permalink

    - pfSense 1.2.3-RC1 อนุญาติให้ admin กับ root เป็น User ขั้นเทพแต่เพียงผู้เดียว ลองทดสอบ 2.0 ดูครับ สามารถทำอย่างที่ต้องการได้

    - รู้สึกจะไม่ได้นะครับทั้ง Local Authen & FreeRADIUS กำหนดได้แค่ mm/dd/yy ครับ

  11. dangerman 21 October 2009 at 11:08 am Permalink

    - ผมลองลง ver 2.0 แล้ว แต่มันติดอะไรบางอย่างครับ ทำให้ลงไม่ได้ ไม่ทราบว่าพอแนะนำ 2.0 ตัวไหนที่ลงแล้วไม่มีปัญหาหน่อยครับ เพราะที่ผมได้มา มันเป็นตัวล่าสุด แต่ใช้ไม่ได้
    - ส่วนที่ถามว่าให้ expire เป็นรายชั่วโมงนั้น ถ้า pfsense ทำไม่ได้ เราสามารถเพิ่มเติมโดยเอาตัวอื่นใส่เข้าไปได้หรือเปล่าครับ โดยที่ยังคงใช้ pfsense เป็นตัวหลักอยู่น่ะครับ (เพราะไม่อยากไปใช้ตัวอื่น ส่วนตัวชอบ pfsenseครับ)

  12. laontalk 22 October 2009 at 12:45 am Permalink

    K.Dangerman

    pfSenes 2.0 ยังเป็น Alpha Alpha อยู่เลย ฉะนั้นยังไม่สามารถนำมาใช้งานได้จริง แต่เท่าที่ดู Feature แล้วนับว่ามีการเปลี่ยนแปลงมากเลยทีเดียว คงต้องรออีกสักพักใหญ่ๆ ครับ

    เท่าที่เคยติดตั้งให้ลูกค้า ผมทำแบบนี้ครับ

    case study 1
    - pfSense ตัวที่ 1 ทำหน้าที่เป็น Loadbalance Failover นิ่งดีมากๆ ดีกว่าอุปกรณ์ที่มีขายตามท้องตลาดเสียอีก
    - pfSense ตัวที่ 2 ทำหน้าที่เป็น Proxy Server + User Authentication

    case study 2
    - pfSenes ทำหน้าที่เป็น Loadbalance Failover / Internet Gateway
    - ใช้โปรแกรม Billing เช่น Plawan, iBSG etc. ทำหน้าที่จัดการเรื่อง User Authentication

    *** pfSense ออกแบบมาเพื่อทำหน้าที่เป็น Firewall, NAT, VPN มากกว่าเรื่องของ User Authen ฉะนั้นควรเลือกใช้ให้เหมาะสมกับงานครับ

  13. anna 7 November 2009 at 11:09 pm Permalink

    ขอคำแนะนำค่ะ
    ใช้ pfSense key user/password ใช้งานได้ปกติ แต่มีปัญหา คือ
    1. ถ้าจะเข้าเปิด explorer ใหม่ จะต้อง key user/password ใหม่ทุกครั้ง
    2. ต้องการ add user ประมาณ 1000 users จะ dump จาก file excel จะทำอย่างไร
    ขอบคุณค่ะ

  14. laontalk 10 November 2009 at 5:22 pm Permalink

    K. Anna

    ช่วยขยายความหน่อยครับ ไม่เครีย์คำถาม
    ข้อ 1. ถ้าจะเข้าเปิด explorer ใหม่ จะต้อง key user/password ใหม่ทุกครั้ง

  15. thunyapornd 1 December 2009 at 9:44 am Permalink

    รบกวนผู้รู้หน่อยครับ ไม่ทราบว่าผมจะ ftp เข้าไปแก้ไข หรือ โหลดไฟล์ ใน fpsense ได้ไหมครับ ผมลองหลายวิธีแล้วเข้าไม่ได้ ต้องไปแก้ไขส่วนไหนเพิ่มเติมอีกครับ
    ขอบคุณมากๆครับ ต้องการทราบอย่างมากเลยครับ

    • laontalk 1 December 2009 at 9:48 pm Permalink

      สามารถทำได้ด้วยโปรแกรม SFTP ผ่าน SSH

      1. System –> Advanced –> Enable Secure Shell
      2. ติดตั้งโปรแกรม WinSCP แล้วทำการ Login ด้วย Root และ Password ของ pfSense

  16. thunyapornd 8 December 2009 at 5:25 pm Permalink

    ขอบคุณครับ เข้าได้แล้ว คือผมไปเข้า admin เลยเข้าไม่ได้ ต้องเข้าที่ root ครับ

  17. kitti apichayarak 10 December 2009 at 5:40 pm Permalink

    เรียนสอบถามอาจารย์ครับ….
    1.เนื่องจาก ผมลง Squid Proxy + Lightsquid เรียบร้อยใช้งานได้ปกติดี แต่มีปัญหาอยู่ที่ว่า Hard disk ของผม เต็ม คือใช้งาน 100% เพียงแค่อาทิตย์เดียวเท่านั้น ผมใชเพียง 20G ถ้าผมเปลี่ยนมาใช้ 160G จะเพียงพอต่อการใช้งานของ User 20 ราย หรือไม่ครับ มีวิธีแก้อย่างไรบ้างครับ
    2.ผมจะดึง log file จาก server มาเก็บเป็นข้อมูลที่เครื่องคอมพิวเตอร์ของผมได้อย่างไรครับ ช่วยอธิบายให้ละเอียดนะครับ ผมไม่ค่อยมีความรู้เท่าไหร่

    • laontalk 26 December 2009 at 1:00 pm Permalink

      — Kitti apichayarak—–

      1. เพิ่ม HDD 160 GB และติดตั้ง Squid Proxy + Lightsquid เพียงพอสำหรับ User 20 รายครับ
      2. การดึง log file จาก Server มาเก็บไว้ที่เครื่องแนะนำให้ใช้โปรแกรม Syslog Watcher ส่วนวิธีการก็ทำเหมือน kiwi syslog นั่นแหละครับ
      3. Proxy Analyzer ยังหาไม่พบตัวที่โดน หรือฟรี ก็ยังคนหากันต่อไป

  18. kitti apichayarak 10 December 2009 at 5:46 pm Permalink

    ขออ้างอิงจาก ความเห็นนี้นะครับ
    ไม่ทราบว่าสามารถหาโปรแกรมได้หรือยังครับผม

    23 September 2009 at 12:51 am

    Permalink

    ถ้าต้องการให้ light squid แสดงรายชื่อ Login ด้วย, จะต้องเปลี่ยนไประบบ Proxy Authentication แทนครับ..

    การตรวจสอบคงต้องหลายๆ อย่างรวมกัน เช่น IP Address, MAC Address, syslog เป็นต้น ถึงจะติดตามผู้กระทำผิดได้

    หรืออาจจะต้องใช้โปรแกรมประเภท Proxy Analyzer ตัวอื่นๆ เข้ามาช่วยดึงรายละเอียดจาก proxy logs อีกที ซึ่งเก็บอยู่ที่ /var/squid/log กำลังหาวิธีอยู่ ช่วยกันครับ..

  19. Ka_O 15 December 2009 at 4:16 pm Permalink

    อยากเรียนสอบถามครับ ถ้าต้องการให้ client สามารถ ใช้ service sftp โดยผ่าน squid proxy ต้อง configure อย่างไรบ้างครับ

    เช่น ลง Cuteftp บนเครื่อง client ต้องการติดต่อไปยัง hosting แห่งหนึ่ง

    ปล. ไม่ได้ใช้เป็น Transparent Proxy ครับ

  20. Torujung 15 December 2009 at 4:40 pm Permalink

    เรียนสอบถามครับ ถ้าให้ client ใช้ service SFTP ออก internet โดยผ่าน Squid proxy ต้องมีวิธีการ configure อย่างไรบ้างครับ

    ปล. ไม่ได้ทำเป็น Transparent Proxy ครับ

    ขอรบกวนด้วยครับ

  21. Torujung 15 December 2009 at 4:44 pm Permalink

    ถ้าต้องให้ client ใช้ service SFTP (port 22) ออก internet โดยผ่าน squid proxy ต้อง configure อย่างไรบ้างครับ

    ปล. ไม่ได้ใช้ Tranparent proxy ครับ

    • laontalk 26 December 2009 at 1:12 pm Permalink

      — Torujung —-

      โปรแกรม Client ส่วนใหญ่ จะมี Option สำหรับกำหนดค่า Proxy Setting, หรือเลือกใช้ค่า Proxy Setting เดียวกันกับ Internet Explorer, หรือ กำหนด Bypass หมาลเลข IP Address ที่ Squid Proxy เพื่อให้ใช้งาน Internet โดยไม่ผ่าน Proxy ก็ย่อมได้เช่นกันครับ

  22. nop_dol 18 December 2009 at 2:37 pm Permalink

    ตอนนี้ที่โรงเรียนผมได้ลง pfsense 1.2.3rc3 ใช้ captive portal ทำ authen user ใช้แบบ local ครับ
    ทีนี้อยากจะทราบว่า user ไหนเข้าเว็บอะไรบ้าง จะดู log ได้ที่ไหนครับ มีวิธีทำไหมครับ

    • laontalk 26 December 2009 at 1:06 pm Permalink

      — nop_dol—

      Captive portal user authentication ไม่สามารถเก็บ log เป็น user login ได้ครับ, จะทราบ MAC address กับ IP Address เท่านั้น

      ถ้าต้องการให้ Lightsquid แสดงชื่อ Login จะต้องใช้ Squid proxy Authentication ครับ แต่จะไม่สามารถใช้ Transparent Proxy ได้,
      และเราต้องเสียเวลาไปกำหนด Proxy Setting ให้กับคอมฯ ทุกเครื่องด้วย

  23. MegaTron 26 December 2009 at 12:34 pm Permalink

    ขออภัยด้วยนะครับถ้าเขียนผิดที่ พอดีติดปัญหาอยู่ว่าเวลาผมแก้ไฟล์ squid.conf ของผมจะอยู่ที่ /usr/local/etc/squid แต่พอแก้ไขเสร็จผมสั่งให้เครื่อง restart ในรูปแบบต่าง ๆ สุดท้ายมันก็กลับคืนค่าเดิม ไม่ว่าจะเป็นสั่งจาก pfsense console setup => 5. reboot system หรือจะเป็นการสั่งแบบ shutdown -r now ก็ไม่ได้ เคยอ่านเจอว่าต้องแก้ไขใน command เท่านั้น และสั่งจาก command ด้วย ขนาดตอน edit ผมก็ใช้ vi ไม่ได้แก้ไขใน webUI เลย ตอนนี้ก็ลองมาหมดแล้วครับทั้งใช้ shh มา copy ไฟล์ squid.conf มาแก้ไขด้วย nodpad ข้างนอกแล้วพอ replace ทับไป ก็ใช้งานได้ คือ จำค่า แต่พอ restart service (squid)มันก็กลับไปเป็นค่า defaut อยู่ดี ที่ผมแก้ squif.conf ก็คือ จะไปแก้ไขเวลาที่ squid เก็บ log ให้มันเป็นเวลาที่อ่านได้ครับ และเคยออ่านเจอมาว่าไฟล์ squid.conf จะต้องไปแก้ไขที่ไหนซักที่ แต่ไม่ใช่ตรงนี้ เพราะหาก restart แล้วมันจะไปเอาค่าเดิมอีกที่ ที่เป็นค่า default มาใช้งานทุกครั้ง ยังไงใครทราบตรงนี้ช่วยบอกด้วยนะครับ
    ปล.ขอบคุณล่วงหน้าครับ

  24. ชัยชนะ 26 December 2009 at 5:29 pm Permalink

    เรียนสอบถามอย่างนี้ครับ..
    ผมติดตั้ง squid แล้ว เว็บ gmember ไม่เล่นเพลงครับ ถอน squid ออกแล้วใช้ได้ ไม่ทราบว่าต้องแก้ตรงไหนครับ หรือต้องการทำการ bypass ยังไงครับ

  25. MegaTron 27 December 2009 at 1:40 pm Permalink

    reboot ใน commandline กับ reboot ที่ webgui ต่า่งกันหรือไม่ครับ เพราะบางท่านบอกว่า reboot ที่ web จะทำให้ค่าที่ set ไว้กลับมาเป็นค่า default เดิมอีก แล้วการใช้คำสั่ง shutdown – r now ที่ commandline จะมีผลต่างกันหรือไม่กับการใช้ reboot system ที่ console (ข้อ 5)เท่าที่ผมทดลองทำมาทั้งหมดค่าที่แก้ไขจะกลับเป็นค่า default โดยทดลองจากไฟล์ squid.conf และแก้ไขหน้า captive portal มันกลับมาเป็นของเกดิมหมดเลยครับ

    • laontalk 29 December 2009 at 1:26 am Permalink

      ผมยังไม่เคย Reboot หรือ Shutdown ผ่าน command line นะครับ เพราะเครื่อมือที่ให้มาก็สะดวกที่สุดแล้ว ทัั้ง WebGUI หรือ Console Setup หรือจะ Remote by PuTTY

      และการ reboot / shutdown ตามปกติจะไม่มีการ Reset ค่าใดๆ ทั้งสิ้น เว้นแต่เลือกคำสั่ง Factory defaults จึงจะถูก Reset ไปสู่ค่าเริ่มต้นครับ

      ถ้าท่านใช้ Command line แล้วมีปัญหา แนะนำว่าควรใช้เครื่องมือที่ pfSense จัดไว้ให้ดีกว่าครับ

  26. MegaTron 29 December 2009 at 11:22 am Permalink

    ขอบคุณมากครับที่ให้คำแนะนำ ผมว่าที่เป็นผมอาจจะใช้ v.1.2 ก็เป็นได้ครับ คงจะต้อง up เป็น v. 1.2.3 น่าจะหาย ส่วนการ upgrade นี่จะค้องลงใหม่สถานเดียวหรือว่า up ผ่าน firmware ได้หรือไม่ แล้วถ้าได้ ค่าที่เคยปรับแต่งไว้ในระบบจะหายไปด้วยหรือไม่ครับ

    • laontalk 7 January 2010 at 11:56 am Permalink

      – K.MegaTron –

      ก่อน update ทุกครั้งควร Backup Configuration ไว้ก่อนนะครับ
      เผื่อผิดพลาดจะได้ไม่ต้องเสียเวลา Config ใหม่

      แนะนำว่าควรเลือก Backup ทีละรายการ และบันทึกเป็นไฟล์เก็บไว้ก่อน

      ลิงค์สำหรับโหลดไฟล์ Update
      http://mirror.qubenet.net/mirror/pfsense/updates/

      ขั้นตอนการ update
      System > Firmware > Enable firmware upload

  27. Firstknight 5 January 2010 at 12:46 am Permalink

    มือใหม่ ขอคำแนะนำหน่อยครับ
    ผมพื่งหัดใช้ pfsense ตอนนี้มีปัญหา squid มีปัญหาอยู่ที่ว่า Hard disk ของผม เต็ม คือใช้งาน 100%
    และไม่สามารถแก้ไข Proxy Server ขื้นข้อความแบบนี้อ่ะครับ

    Warning: main(/usr/local/pkg/squid.inc): failed to open stream: No such file or directory in /usr/local/www/pkg_edit.php on line 53 Fatal error: main(): Failed opening required ‘/usr/local/pkg/squid.inc’ (include_path=’.:/etc/inc:/usr/local/www:/usr/local/captiveportal:/usr/local/pkg’) in /usr/local/www/pkg_edit.php on line 53

    • laontalk 7 January 2010 at 12:00 pm Permalink

      – k.Firstknight –

      ไม่ทราบว่าใช้ HDD ความจุเท่าไหรครับ

      แนะนำว่าอย่างน้อย HDD 80GB, RAM 512 MB (ขึ้นไป)

      เพื่อแก้ไขอาการดังกล่าวให้ Reset to factory defaults
      แล้วทำการติดตั้ง Package ใหม่ครับ

  28. Firstknight 7 January 2010 at 1:09 pm Permalink

    ใช้ HDD 40 GB RAM 512 ครับ ถ้าผม Remote ไป Reset to factory defaults แล้วจะสามารถ Remote ติดตั้ง Package ใหม่ได้ไหมครับ ขอบคุณล่วงหน้าครับ

  29. frv.soft 21 January 2010 at 3:43 pm Permalink

    ถ้าต้องการให้ Lightsquid แสดงชื่อ Login จะต้องใช้ Squid proxy Authentication ครับ แต่จะไม่สามารถใช้ Transparent Proxy ได้,
    และเราต้องเสียเวลาไปกำหนด Proxy Setting ให้กับคอมฯ ทุกเครื่องด้วย

    >> และมีซอฟแวร์หรือ OS ตัวไหนที่ช่วยจัดการตรงนี้ได้บ้าง แบบที่สามารถทำ Transparent Proxy ได้ด้วย ถ้ามีรูปเน็ตเวิร์คคราวๆ จะดีมากเลย ช่วยแนะนำด้วย ครับ

  30. laontalk 22 January 2010 at 2:50 am Permalink

    เรียนตามตรงว่าคงไม่ได้ทั้งหมดอย่างที่ต้องการ Solution ของผมทำแบบนี้

    - pfSense + Squid Transparent proxy + lightsquid + captive portal
    - Windows OS + Syslog Watcher

    ถึงแม้ LightSquid จะไม่รายงาน User Login แต่ Syslog Watcher มีรายงานครับ

  31. snn_dd 10 February 2010 at 8:52 pm Permalink

    ขอสอบถามนิดนะครับ พอดีเพิ่งหัดเล่น ตัว Squid พอเล่นไปสักพัก เครื่องลูกจะออกเน็ตไม่ได้ ต้องเอา squid ออก จึงจะเข้าเน็ตได้ ไม่ทราบว่าเป็นเพระอะไร ต้องแก้ไขตรงจุดไหนคับ ขอบคุณคับ

  32. tarn111 17 March 2010 at 2:10 pm Permalink

    ลง squid version 2.7 แล้ว reboot system แต่กลับใช้งานอินเตอร์เน็ตไม่ได้

    ใส่ # หน้า kern.ipc.nmbclusters=”0″แต่ก็ยังเล่นอินเตอร์เน็ตไม่ได้

    ไม่ทราบว่า ติดปัญหาอะไร ตรงไหน รึป่าว ค่ะ

    หรือมีวิธีแก้ไขยังไง ค่ะ

    ขอบคุณค่ะ

  33. Danae Limardi 30 March 2010 at 7:02 pm Permalink

    Another great article with good points, We’ve been a lurker here for quite a while but hope to be far more involved from now on.

  34. EAK CHiang Mai 1 September 2010 at 10:13 pm Permalink

    มีโหลดบาลานด์ อยู่แล้ว อยากเพิ่ม squid proxy ต้องทำไงครับ
    ขา LAN ของ โหลดบาลานด์ 192.168.1.1 ต่อเข้าขา WAN ของ squid proxy คอมอีกเครื่องนึง
    ปัญหาคือ
    1. ขา WAN ของ squid proxy ต้องเซ็ต ip อะไรครับ ?
    2. ขา LAN ของ squid proxy ต้องเช็ต ip อะไรครับ เป็น ip เดียวกับ ขา LAN ของตัวโหลดบาลานด์ได้หรือไม่?

    ขอบคุณครับ

  35. rct_k11 6 September 2010 at 12:56 pm Permalink

    ต่อครับ….
    ลองเซ็ตไอพีเหมือนที่พี่บอกแล้ว เชื่อมต่อดูระหว่าง LAN(10.10.0.1) กับ WAN (10.10.0.2)
    ปรากฏว่ามันไม่เชื่อมต่อกันอ่ะครับ ไฟแสดงสถานะของการ์ดแลนด์ไม่ติดเลย เป็นเพราะอะไรอะครับ?
    เลยลองเอา LAN (10.10.0.1) ไปเชื่อมต่อกับสวิตช์ก่อนแล้วต่อจากสวิตช์เข้า WAN (10.10.0.2)ก็ไม่ติดอีกครับ? ผมว่าก็ทำถูกขั้นตอนทุกอย่างนะ มันเป็นเพราะอะไรหรอครับ ชี้แนะหน่อยครับ..

    ขอบคุณครับ

  36. EAK CHiang Mai 9 September 2010 at 5:22 pm Permalink

    ทำได้แล้วครับพี่
    เปิด DHCP แล้วใช้สวิตช์ ช่วยเชื่อมต่อระหว่าง LAN(โหลดบาลาน) กับ WAN(proxy) ครับ
    ละก็อยากให้พี่ช่วยดูสเปคคอมที่ใชช้หน่อยว่าไหวรึป่าว
    ผมใช้ CPU 800 Mhz Ram 256 HDD 10 G
    ไม่รู้จะเก็บ cache ได้กี่วัน เหอๆ

    ปล.
    ไม่รู้จะพูดยังไง ขอบคุณพี่มากกกกกกกกกๆๆๆ ที่ให้คำแนะนำครับ

  37. nantawan 19 September 2010 at 8:32 pm Permalink

    การเก็บ log file ตั้งค่าตามข้างบนแล้วค่ะ
    แต่ไม่เป็นมี log ส่งมายัง kiwi syslog เลย
    ลอง syslog watcher แล้วก็ยังไม่ได้เหมือนกันค่ะ
    รบกวนช่วยตอบหน่อยนะค่ะ

    • laontalk 29 September 2010 at 9:19 am Permalink

      เครื่อง Remote syslog server จะต้องกำหนด IP Address ด้วยนะครับ ตามตัวอย่างคือ 192.168.10.150 และติดตั้งโปรแกรม syslog watcher

      กำหนดแค่นี้เองก็น่าจะใช้ได้แล้วนะครับ

  38. aloneguy 3 October 2010 at 11:20 am Permalink

    ขอสอบถามดังนี้ครับ
    ในกรณีต้องการ add user คราวละมาก ๆ ต้องทำอย่างไรครับ

    • laontalk 5 October 2010 at 5:36 pm Permalink

      รู้สึกจะทำไม่ได้นะครับ ผมก็หาวิธีอยู่เหมือนกัน

  39. EAK CHiang Mai 21 October 2010 at 6:44 pm Permalink

    พี่ครับ squid proxy เริ่มมีปัญหาครับ
    1. ใช้ไปแล้วซักพักมันเริ่มจะเข้าเว็ปที่เป็น https:// เช่น hotmail, facebook , hi5
    อะไรพวกนี้อืดมากครับ เป็นเพราะอะไร เหรอครับ มีวิธีแก้มั้ยครับ
    2. ตอนนี้รู้สึกว่า Disk usage เริ่มจะเต็มละครับ ถ้าเต็มแล้วจะทำยังไงดีครับ

    ขอบคุณครับ

  40. EAK Chiang Mai 25 October 2010 at 9:30 pm Permalink

    อีกปัญหาหนึ่ง ไม่รู้มีใครเป็นเหมือนผมบ้าง
    คือ เข้าเล่น camfrog ได้แต่ส่องดูคนอื่นไม่ได้
    แต่ถ้าไม่ใช้ proxy ส่องคนอื่นได้ปกติ
    เป็นเพราะอะไร เกี่ยวกับพอร์ตรึปล่าวครับ…….

  41. dangerman 21 November 2010 at 4:11 pm Permalink

    ผมใช้งานได้ดีไม่มีปัญหาครับ squid + light squid >> set transparent proxy ทุกอย่างเยี่ยม เก็บ log user ที่ไปเวปต่าง ๆ download file size

    แต่มีปัญหาอย่างนึงครับ ถ้าอยากจะกำหนดว่าไม่ให้ download ไฟล์ขนาดใหญ่ ตั้งแต่ 50M ขึ้นไปห้าม download จะ set ที่จุดไหนครับ เพราะตอนนี้ block bit ได้แต่ เข้าไป download youtube ได้ ไฟล์ใหญ่มาก ๆ เป็น 100++M ทำให้ทั้งระบบอืดไปหมดครับ ดู RRD graph ก็นิ่งยาวเลย บางครั้งต้อง reboot เพื่อให้ user นั้นหลุดไป
    รบกวนหน่อยครับ

  42. coy 23 December 2010 at 11:40 am Permalink

    ติดตั้ง squid ใหม่ไม่ได้ ครับ service ไม่ทำงาน ค้างอยู่ตรงนี้
    Removing package…
    Loading package configuration squid.xml…
    Loading package instructions…

    จะมีข้อความนี้อยู่ใต้ หน้า web

    Warning: delete_package(/usr/local/pkg/squid.inc): failed to open stream: No such file or directory in /etc/inc/pkg-utils.inc on line 754 Fatal error: delete_package(): Failed opening required ‘/usr/local/pkg/squid.inc’ (include_path=’.:/etc/inc:/usr/local/www:/usr/local/captiveportal:/usr/local/pkg’) in /etc/inc/pkg-utils.inc on line 754

    มีวิธีการติดตั้งแบบ command line มั้ยครับ

    • laontalk 5 January 2011 at 12:18 am Permalink

      ลอง remove package แล้วติดตั้งใหม่ได้หรือป่าวครับ, ถ้ายังไม่ได้ให้ลอง Re-install pfsense แล้วติดตั้ง Squid ก่อนใครเลย…

  43. dangerman 4 January 2011 at 9:48 am Permalink

    พี่ admin ครับ ผมขอค่า config ที่เหมาะสมหน่อยครับ
    ผมใช้ server xeon ram 2GB hdd 250GB รองรับ user 150 คน

    Hard disk cache size = ? (now 4096)
    Hard disk cache system =? (now aufs)
    Memory cache size =? (now 640)
    Minimum object size =? (now 0)
    Maximum object size =? (now 4)

    ขณะนี้ uptime 21:30
    memory usage 73% (ถ้าตรงนี้ถึง 100% มันจะเป็นยังไงครับ แล้วจะแก้ไขได้ป่าวครับ ผมสังเกตว่าถ้าไม่ใช้ squid มันจะน้อยมาก ๆ ไม่ถึง 10%)
    disk usage 1%

    รบกวนหน่อยครับ

  44. kcom 4 February 2011 at 2:11 pm Permalink

    สอบถามการตั้งค่า squidgard ใน pfsense 1-2-3 rc1ครับ เพื่อจะblock web ต่างๆๆ เช่นเกม
    ผมทำให้โรงเรียนครับ แต่เพิ่งศึกษาครับ ผมดาวโหลดติดตั้งเสร็จแล้วครับ แต่คอนฟิกไม่เป็นครับ ขอคำแนะนำ
    ด้วยครับ ขอบคุณครับ

  45. matrixprew 19 February 2011 at 6:29 pm Permalink

    ผมจะเข้าดู log แล้วไม่สามารถดูได้ครับ ขึ้นแบบนี้

    LigthSquid diagnostic.
    Error : report folder ‘/var/lightsquid/report’ not contain any valid data! Please run lightparser.pl (and check ‘report’ folder content)
    Please check config file !

    แก้ใขยังไงดีครับ

    • laontalk 9 March 2011 at 2:30 am Permalink

      แสดงว่า /var/lightsquid/report ยังไม่มีข้อมูล ให้กดปุ่ม refresh full หรือ refresh now

  46. matrixprew 21 February 2011 at 8:49 am Permalink

    พอเวลาผม ล็อกอินเข้า คอนฟิกค่าจะฟ้องบนเวปว่า
    Warning: Illegal offset type in /etc/inc/interfaces.inc on line 3468 Warning: Illegal offset type in /etc/inc/interfaces.inc on line 3468 Warning: Illegal offset type in /etc/inc/interfaces.inc on line 3468

    แก้ใขยังไงดีครับ

  47. nsangkla 24 March 2011 at 12:02 pm Permalink

    pfsense สามารถ block ultrasurf ได้ป่าวคับ ผม block 443 ไป เข้า hotmail ไม่ได้ มีวิธี block ultrasurf แล้วก็ เข้า hotmail ไหมคับ ที่โรงเรียนประสบปัญหามาก ขอบคุณคับ

  48. paitoon 30 May 2011 at 12:58 pm Permalink

    ผมทำการบล๊อค facebook ผ่านทาง squid proxy browser ตัวอื่นไม่สามารถใช้งาน facebook ได้ แต่ตัวเจ้า opera ดันใช้ได้ ผมต้องแก้ไขยังงัย ผมก็ไม่รู้เหมือนกันว่าเค้าเซ็ตกันยังงัยนะ เจ้า opera อะ

  49. banrong 1 June 2011 at 11:38 am Permalink

    http://3.bp.blogspot.com/–jSanayDVmA/TeXAUFpD-AI/AAAAAAAAATM/WRfpByXqWMw/s400/lbwithproxy.jpg

    อยากสอบถาม ตาม รูป pfsense ตัวแรก ติดตั้ง การ์ด แลน 4 ใบ adsl 2 lan 2

    adsl 1 internet
    adsl2 internet
    lan1 ip 192.168.5.254
    lan2 ip 192.168.9.254
    ———————————————–
    pfsense 2
    การ์ดแลน 2 ใบ
    1. wan
    2.lan ip 192.168.2.254
    ———————————————-
    ผมอยากจะถาม ว่า ผม จะทำอย่าง ไร ให้ วง lan 192.168.5.254 สามารถ เห็น วง lan 192.168.2.254 ได้ ผมทำ เว็บ server .ใว้ คือ ip 192.168.2.10 อยาก ให้ วง 192.168.5.254 เข้า 192.168.2.10 ได้

    ต้อง ทำยังงัย ครับ ขอบคุณ ครับ

  50. banrong 1 June 2011 at 11:40 am Permalink

    ทำไมแนบรูปไม่ได้

    http://3.bp.blogspot.com/–jSanayDVmA/TeXAUFpD-AI/AAAAAAAAATM/WRfpByXqWMw/s400/lbwithproxy.jpg


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+